4. 基线概念与分类:基线的定义、功能基线、性能基线、安全基线、合规基线
在镜像供应链的信任边界发布窗口中,基线(Baseline)是衡量变更是否可接受的参照坐标系。没有基线,偏差回归检查就失去了比较对象。本章从定义出发,系统阐述四种核心基线的内涵、用途与相互关系。
4.1 基线的定义
基线是在特定时间点对工件(镜像、配置、依赖、策略)的已批准状态的正式快照。它既是后续变更的参照锚点,也是回归检查的判定依据。
核心公式: 基线 = 已批准状态 + 时间戳 + 签名指纹
在镜像供应链上下文中,基线具有三个关键属性:
- 不可变性:基线一旦发布,其内容(镜像摘要、元数据、策略)即被锁定,任何修改必须通过新的基线版本。
- 可追溯性:每条基线关联完整的构建日志、审批记录和签名链。
- 可比较性:基线之间支持差异分析,用于识别偏差。
4.2 功能基线
功能基线定义了镜像或服务在发布时必须满足的行为规范。它回答的问题是:“这个镜像应该做什么?”
| 维度 | 内容 | 检查方式 |
|---|---|---|
| 接口契约 | API 端点、请求/响应格式、协议版本 | OpenAPI 规范比对 |
| 核心逻辑 | 业务功能点、状态机转换、错误处理 | 集成测试套件 |
| 依赖行为 | 外部服务调用、数据库操作、消息队列 | 契约测试 + Mock 验证 |
| 配置驱动 | 环境变量、启动参数、特性开关 | 配置校验器 |
实践建议:功能基线应包含 Golden Signals(延迟、流量、错误、饱和度)的预期阈值,而不仅仅是功能通过/失败。
4.3 性能基线
性能基线记录镜像在特定负载下的资源消耗与响应特征。它是容量规划和回归检测的关键输入。
性能基线通常包含以下指标:
- 吞吐量:每秒请求数(RPS)或每秒事务数(TPS)
- 延迟分布:P50、P95、P99 响应时间
- 资源占用:CPU 使用率、内存 RSS、网络 I/O、磁盘 I/O
- 启动时间:从容器启动到就绪探针通过的时间
- 冷启动 vs 热启动:首次加载与缓存命中后的性能差异
常见陷阱:性能基线必须在隔离环境中采集,避免因共享宿主机的资源争用导致基线失真。建议使用 cgroup 绑定的专用压测节点。
4.4 安全基线
安全基线定义了镜像在发布时必须满足的最低安全要求。它是信任边界的核心防线。
安全基线通常包含以下检查项:
| 类别 | 检查项 | 基线阈值 |
|---|---|---|
| 漏洞扫描 | CVE 数量(Critical/High/Medium) | Critical=0, High≤3, Medium≤10 |
| 软件物料清单 | SBOM 完整性、依赖来源可信度 | 100% 已知来源 |
| 签名验证 | 镜像签名、提交签名、构建证明 | 全部通过验证 |
| 配置安全 | 非 root 运行、只读根文件系统、Seccomp 策略 | 符合 CIS Docker Benchmark |
| 密钥检测 | 硬编码密钥、令牌、证书 | 零容忍 |
关键原则:安全基线不是静态的。当新的高危 CVE 公开时,基线阈值应自动收紧,并触发对历史镜像的重新评估。
4.5 合规基线
合规基线确保镜像供应链满足法规、行业标准与组织策略的要求。它回答的问题是:“这个镜像是否被允许进入生产环境?”
常见的合规基线来源包括:
- 行业标准:PCI-DSS、HIPAA、SOC2、FedRAMP
- 组织策略:禁止使用特定许可证(如 GPLv3)、禁止使用未批准的基础镜像
- 地域法规:GDPR 数据驻留要求、中国《网络安全法》的密码算法要求
- 供应链策略:仅允许从受信任的镜像仓库拉取、必须经过人工审批
| 合规域 | 基线检查示例 | 违反后果 |
|---|---|---|
| 许可证合规 | 禁止 GPLv3 依赖进入生产镜像 | 阻断发布 |
| 数据驻留 | 镜像不得包含 GDPR 受限数据 | 阻断发布 + 上报合规官 |
| 加密标准 | 必须使用 FIPS 140-2 验证的加密库 | 阻断发布 |
| 审批流程 | 生产镜像必须经过安全团队签名 | 阻断发布 |
4.6 基线分类对比
四种基线在发布窗口中的角色不同,但共同构成完整的信任边界:
| 基线类型 | 关注焦点 | 检查频率 | 回归影响 |
|---|---|---|---|
| 功能基线 | 行为正确性 | 每次构建 | 功能回归 → 阻断发布 |
| 性能基线 | 资源效率 | 每次构建 + 定期压测 | 性能退化 → 告警/阻断 |
| 安全基线 | 漏洞与攻击面 | 每次构建 + 实时监控 | 安全回归 → 立即阻断 |
| 合规基线 | 法规与策略 | 每次发布 + 定期审计 | 合规偏离 → 阻断发布 |
集成策略:在 DevSecOps 流水线中,四种基线应合并为一条复合基线,通过策略即代码(Policy as Code)统一管理。任何一条基线出现偏差,都应触发回归检查流程。