前言¶
在 Windows 环境中验证控制平面变更(如服务、任务计划程序、事件日志)的“收敛”是一项复杂任务。dsh-windows-settlement-proof 旨在解决这一问题。它通过离线、内容寻址的方式提供证据,证明一个已批准的 Windows 控制平面变更在所有必需表面上已达成一致。
核心定位¶
这是一个面向管理安全领域的 DSH 插件。它的核心职责是验证变更是否“ settled”(达成一致),而不是去执行变更。它通过对比固定哈希锁来检查 Service Control Manager、Task Scheduler、Event Log 等关键组件的状态是否与预期一致。
核心功能¶
该插件作为验证器运行,而非操作器。它具有以下特性:
- 静态证据对比:对比 Service Control Manager、Task Scheduler、Event Log 和策略投影的显式脱敏收据与固定哈希锁。
- 零执行风险:不会运行 PowerShell、
sc.exe、注册表命令或任意子进程,也不读取 Windows 服务、任务定义、事件 XML 或业务负载。 - 安全报告:报告仅包含公共计数、布尔值和 SHA-256 值,不包含敏感业务数据。
- 元数据检查:提供内联、只读的元数据检查功能。
- 收敛验证:检查变更是否收敛、是否在所需重启纪元保持存在,并匹配成功事件收据。
安装与启用¶
在当前工作目录下执行以下命令安装插件:
dsh plugin --profile proof add .
典型用法¶
插件提供验证和检查功能。以下是典型操作流程:
- 安装插件:使用上述安装命令。
- 验证特定清单:针对工作区相对路径的清单进行验证。
node bin/dsh-windows-settlement-proof.mjs verify examples/settled.json
- 运行测试:使用项目自带的测试脚本。
npm test
npm run check
适用场景与注意¶
- 适用场景:适用于需要严格审计 Windows 控制平面变更一致性的场景。
- 权限与安全:插件以当前 DSH 进程的权限运行。安装前应检查源码与许可证(MIT)。
- 路径安全:清单和工件路径拒绝绝对路径、遍历和符号链接。
- 敏感数据:拒绝形状为密钥的值和命名了凭证的字段。
- 文件写入:工件写入使用独占创建和确定性内容寻址,并在写入后进行 SHA-256 回读验证。
结语¶
该插件提供了验证 Windows 变更一致性的机制,确保变更在控制平面层面已正确落地。更多细节可查阅 GitHub 仓库。