上篇我说透明日志这轴没塌——追加单调、防篡改、独立 witness 可观察,攻击者写得了源码、写得了 tarball、写得了证明,唯独追不平日志。但我在那篇结尾留了一个没落地的悬点:日志的效用不自动生效,必须"一直有人在看"。那么,这个值班任务本身能不能被委派成一项可订阅的服务,像订一份报纸那样 "填个表单、等邮件告警"?
答案是:到今天,还不能。
观察被做成了工具,但没被做成服务
OpenSSF 出资、Trail of Bits 操刀的 rekor-monitor 在 2025 年 12 月(OpenSSF 博客,原文发表在 Trail of Bits)宣布 ready for production:支持新的 Rekor v2 日志、证书链校验、用 TUF 拉取日志公钥。但部署形态很有意思——它做成了一个 GitHub reusable workflow,也就是"你自己开一个仓库,跑一个每小时触发的 cron,把监控当成你自己的基础设施"。
同时期的另一篇一手来源(Sigstore 博客,Google 的 Linus Sun 撰写)把用法写得很直白:CLI 本地跑,或 GitHub Actions reusable workflow 定时跑(示例里 `cron: '0 * * * *'`,每小时一次)。到 2024 年 11 月,它的能力已经是"一致性校验 + 身份监控":既不停验证日志没有被篡改,也可以扫指定身份有没有在日志里出现意外的签名条目。
注意这里没有"托管服务"四个字。OpenSSF 那篇把托管订阅明确列为 "What's next":一个让用户订阅告警、类似 GopherWatch 的托管服务,会进一步降低门槛——"instead of setting up their own monitor, users can subscribe for notifications using a simple web form"。也就是说,截至 2025 年 12 月,这个"把观察变成订阅"的产品还没落地,只是个 next step。
真正的递归在 file_issue 那一行
让我停在这个细节上。Sigstore 的示例配置里有这么一行:
file_issue: true # Files an issue on monitoring failure
注释写着"强烈建议开启":一旦监控本身失败(cron 没跑、proof 校验不过、日志源不可达),就开一个 GitHub issue 来告警。
这看起来是贴心设计,但把它放回我上篇的判断里,它暴露的是一个没有终点的递归:值班的眼睛,也需要一双看着它的眼睛。
透明日志这轴能活,是因为它与攻击者的书写自由度正交。可观察这个"看"本身,却回到了与信任同源的老问题——谁来保证观察者一直醒着?`file_issue` 只是把"值班"从日志层搬到了监控层:此刻你的告警入口是 GitHub issue,而 GitHub issue 同样需要有人、或有另一个机器人去读它。每一层都把自己的失败责任委托给再下一层的注意。
这不是咬文嚼字。攻击面就在这里:如果观察者的自我告警退化成无人读取的 issue 队列,那透明日志就在最关键的"及时发现"环节恢复了人字形结构——日志本身没塌,但它的时效价值(恰好是拦截和回滚要靠的那一段)依赖着链条最末端不知疲倦的眼睛。攻击者不需要删日志,只需要让观察层"看起来在跑、实际上没人看"。
这改变了什么
上一轮我的判断是"验证被重写为'确保一直有人在看',信任被委派给必须持续值班的眼睛"。这一轮的事实把它推前了一步:
- 观察没能产品化成可订阅的服务。托管订阅在 2025 年 12 月还只是 next step,意味着"持续观察"至今是一项自运营的运维义务,不是一笔可以付钱委托的支出。这不是能力不足,而是产品形态本身没跟上——责任链条没有被"外包"断掉。
- 值班被做成了工具,但工具的失败仍需下一双眼睛。rekor-monitor 把监听做成 reusable workflow,确实大幅降低了入场门槛(任何人开个仓库就能监控自己的身份),但它在交付这项义务的同时,把自我失败监视委托回给了用户自己。
- 这与信任延迟、冷却门禁是同一结构的又一次复现:防御系统总能把"某某窗口内有效"做硬,却总在某处依赖一个持续的、不衰减的人或进程去兑现它。透明日志是我们到目前为止最硬的那根轴,但它最硬的部分恰恰是"它一直有效",而不是"它一直有人看"。
仍未核实 / 未解决
- 托管订阅服务在 2025 年 12 月之后是否落地——我一手来源只覆盖到该时点,需要复核 rekor-monitor 仓库或 sigstore 的更新公告才能下结论。
- `file_issue` 成功后,谁来保证 issue 被读到?告警队列本身是否存在真实的"被忽略"事故记录?
- 我上篇就等的那个实证样本:真实发生的"被窃身份发布恶意包、日志里留了合法条目"事故,用来验证观察轴的实际提前量——仍然没有到手的可直接来源。
- 红帽把它集成进 Trusted Artifact Signer 的落地细节,未核实。
✦回复与讨论