导语:
截至 2026 年 3 月 29 日,网络安全领域最有操作价值的一条更新,来自 GitHub 3 月 26 日对 Credential revocation API 的扩展。这个接口现在不仅支持传统 PAT,还支持 OAuth app token、GitHub App user-to-server token、GitHub App refresh token,而且可以对不属于你的仓库里发现的暴露凭证发起批量撤销请求。再叠加 3 月 24 日关于安全相关组织 API 字段即将退役、需要迁移到 Code Security configurations 的公告,可以看出平台安全治理已经不满足于“告诉你哪里危险”,而是要求组织把撤销、替换、默认策略全部做成自动化。
很多公司的密钥泄露响应还停留在很原始的阶段:发现告警,群里喊人,找 owner,人工删掉代码,再补发 token。这个流程的问题不是慢一点,而是天然无法应对批量事件和无人认领事件。凭证暴露真正危险的时刻,往往不是它第一次被发现,而是它在暴露后的几十分钟里仍然有效。
1. 这次 API 扩展真正解决了什么
GitHub 现在允许任何用户通过未认证 API 提交批量撤销请求,单次最多 1000 个 token,每小时 60 次请求。只要提交的是有效暴露凭证,GitHub 会立即吊销,并在 token owner 的安全日志中留下记录;如果这个 token 拥有组织访问权限,组织访问也会立刻被去掉。
这意味着两件事:
- 安全团队终于可以把“先让风险失效”放在 owner 响应之前。
- 凭证泄露处理可以做成自动化批处理,而不是靠人值班盯工单。
这两点非常关键。安全事件里最怕的不是流程不完整,而是明知道风险存在,却还得等某个具体人上线确认。
2. 正确的响应顺序应该怎么改
我建议把凭证暴露事件拆成四段,而不是把所有动作堆进一个工单。
第一段,快速失效。
只要 secret scanning、外部举报、日志检出确认是高可信暴露,就先发 revoke request。对已经公开暴露的 token,没有必要先等业务批准。
第二段,替代凭证生成。
安全系统撤销的是旧凭证,业务系统还得补发新凭证。这里必须区分 PAT、OAuth、GitHub App 各自的发行入口和依赖面。
第三段,影响面确认。
查安全日志、组织审计日志、最近访问记录,确认这个 token 在暴露前后访问了什么资源。
第四段,规则回灌。
回看这次泄露是通过什么路径发生的:脚本输出、CI 日志、错误提交、第三方集成、样例文档。问题不回灌,下次还会重演。
3. 一套可以直接落地的操作流程
把 secret scanning 告警接进内部事件总线。
不要停在邮件。把高可信事件直接路由到自动处置系统。在事件处理中先做凭证分类。
PAT、OAuth token、GitHub App token 的处置人、影响面和补发流程都不同。对高可信暴露直接调用 revoke API。
批量事件优先走 API,别一条条点页面。把 owner 通知和轮换工单并行发出。
撤销和通知不是先后关系,而是并行关系。每天拉一次失败清单。
重点看哪些暴露事件没有及时撤销、哪些补发流程超过 SLA、哪些仓库重复出现暴露。
4. 别忽略 3 月 24 日那条“退役公告”
很多组织还在用组织级 REST 字段维护新仓库默认开启哪些安全能力,比如 Dependabot、secret scanning、push protection。GitHub 已经明确这些字段将在 4 月 21 日移除,应该迁到 Code Security configurations。
这不是表单位置变化,而是治理模型变化。旧方式更像零散开关,新方式更像统一配置。安全团队如果不趁这次迁移把默认策略重整,后面只会在更多自动化脚本里埋炸弹。
5. 我建议本周就执行的检查
- 核对内部泄露响应流程是否已经支持 OAuth 和 GitHub App token。
- 给 secret scanning 告警定义“可自动撤销”的条件。
- 为 Code Security configurations 建一份迁移清单。
- 抽查最近 30 天暴露事件的平均失效时长。
- 复盘是否存在“token 已撤销,但业务方不知道如何恢复”的断点。
6. 结语
安全响应最怕一件事:大家都知道应该处理,但没有人能立刻让风险失效。Credential revocation API 这次扩展,给了团队一个很实在的机会,把“发现暴露”真正升级成“立即失效”。如果组织还停留在人工通知、人工排查、人工旋转的老路上,那不是流程保守,而是在主动放大暴露窗口。
参考资料
- GitHub Changelog: Credential revocation API now supports GitHub OAuth and GitHub app credentials
https://github.blog/changelog/2026-03-26-credential-revocation-api-now-supports-github-oauth-and-github-app-credentials/ - GitHub Changelog: Upcoming deprecation of security-related organization API fields
https://github.blog/changelog/2026-03-24-upcoming-deprecation-of-security-related-organization-api-fields/ - GitHub Changelog: Push protection exemptions from repository settings
https://github.blog/changelog/2026-03-23-push-protection-exemptions-from-repository-settings/