3. 运行时生命周期概述:运行时生命周期的阶段划分(启动、运行、暂停、销毁)

Sandbox 实例从创建到释放,会经历一组离散且可观测的阶段。每个阶段都对应着内核资源状态、网络策略生效范围、存储挂载状态以及审计日志记录粒度的切换。理解这四阶段的划分,是后续配置漂移检测与运行时治理的基础。

3.1 四阶段模型与状态转换

Sandbox 运行时生命周期严格遵循“启动 → 运行 → 暂停 → 销毁”的线性主流程,其中“暂停”为可选阶段,允许在不销毁实例的前提下冻结所有用户态进程。下表列出了各阶段的核心特征与治理关注点:

阶段 状态标识 内核资源状态 网络策略生效 审计日志记录 配置漂移风险
启动 Creating / Starting 分配中,cgroup 与 namespace 初始化 默认拒绝,逐步放行 记录镜像摘要与启动参数 镜像篡改、启动参数注入
运行 Running 完整分配,进程可执行系统调用 按策略执行 实时记录系统调用与文件变更 运行时配置篡改、挂载点变更
暂停 Paused 冻结 cgroup freezer,内存保留 规则保留但不转发流量 暂停审计,仅记录状态转换 暂停期间外部配置同步延迟
销毁 Destroying / Exited 回收中,cgroup 与 namespace 拆除 规则清理 记录退出码与残留资源清单 残留文件或网络规则未清理
治理提示: 配置漂移审计的基线快照应在“启动”阶段完成后立即采集,并在“运行”阶段持续比对。“暂停”阶段虽然进程冻结,但宿主机上的挂载点和网络规则仍可能被外部修改,因此暂停期间的配置变更同样需要纳入审计范围。

3.2 阶段转换流程与关键事件

下图展示了 Sandbox 实例在四阶段之间的转换路径,以及每个转换点触发的关键审计事件。箭头上的标签表示触发条件或 API 调用。

Sandbox 运行时生命周期阶段转换图 启动 Creating / Starting 运行 Running 暂停 Paused 销毁 Destroying / Exited Create() 成功 Pause() 调用 Resume() 调用 Destroy() 调用 进程退出 / 超时 审计: 基线快照 审计: 实时比对 审计: 暂停记录 审计: 残留扫描

3.3 各阶段配置漂移审计要点

配置漂移审计并非在所有阶段都采用相同的检测策略。下表按阶段列出了需要重点监控的配置项与典型漂移场景:

阶段 监控配置项 典型漂移场景 检测手段
启动 镜像 Digest、启动参数、环境变量、Seccomp 策略、Capabilities 镜像被替换为恶意版本;启动参数注入 --privileged 镜像签名验证;启动参数白名单比对
运行 挂载点列表、网络规则、进程列表、文件权限、系统调用频率 运行时挂载宿主机敏感目录;iptables 规则被篡改 内核审计模块实时捕获;eBPF 挂钩
暂停 挂载点状态、网络规则残留、内存映射 暂停期间外部进程修改挂载点属性;网络策略被删除 状态恢复后对比暂停前快照
销毁 残留文件、残留网络规则、cgroup 清理状态 Sandbox 退出后宿主机残留 /tmp/sandbox_* 文件 销毁后扫描指定路径与 iptables 规则

3.4 阶段转换的原子性与审计日志关联

每个阶段转换必须满足原子性要求:转换失败时,Sandbox 应回滚到上一个稳定状态,并记录失败原因。审计日志需要包含以下关联字段,以便在漂移事件发生时重建上下文:

  • sandbox_id:全局唯一实例标识。
  • phase:当前阶段名称(Starting / Running / Paused / Destroying)。
  • transition:触发转换的事件或 API 调用(如 Create、Pause、Resume、Destroy)。
  • timestamp_ns:纳秒级时间戳,用于排序与关联。
  • config_hash:当前阶段关键配置项的哈希值,用于快速比对。
实践建议: 在“启动”阶段完成后,立即计算并存储一份配置基线哈希(config_hash)。在“运行”阶段,每隔 30 秒重新计算当前配置哈希并与基线比对。一旦发现哈希不一致,立即触发配置漂移告警,并记录差异详情。对于“暂停”阶段,建议在 Resume 后强制重新计算基线,避免暂停期间的静默修改被忽略。

3.5 生命周期阶段与治理策略映射

不同的治理策略(如强制访问控制、资源配额、网络隔离)在生命周期的不同阶段具有不同的生效优先级。下表总结了各阶段推荐的治理策略配置:

治理策略 启动 运行 暂停 销毁
Seccomp 系统调用过滤 加载策略 强制执行 策略保留 卸载策略
Capabilities 降权 应用降权规则 持续监控 规则保留 清理规则
网络策略(NetworkPolicy) 默认拒绝 按需放行 规则保留但不转发 清理规则
资源配额(cgroup) 分配限额 动态调整 冻结限额 回收限额
文件系统只读挂载 设置挂载选项 监控挂载变更 保留挂载状态 卸载并清理
常见误区: 部分治理系统在“暂停”阶段会错误地卸载网络策略或 Seccomp 规则,导致 Resume 后 Sandbox 处于无防护状态。正确的做法是保留规则但暂停流量转发与系统调用拦截,Resume 时直接恢复执行,无需重新加载策略。