GitHub Actions Permission Scope Audit 是一个专为检测 GitHub Actions 工作流中权限配置风险而设计的工具。它能够自动扫描项目中的 YAML 工作流文件,识别出过度宽泛的 `GITHUB_TOKEN` 权限授予行为,例如将 `contents: write` 或 `write-all` 等高风险权限赋予自动化流程。该工具特别关注那些在 `pull_request_target` 事件中滥用写权限的工作流,这类模式常被攻击者利用来实施供应链攻击。通过静态分析工作流定义,它能发现未显式设置 `permissions` 策略的情况,这些默认权限往往成为安全盲点。输出结果可用于 CI/CD 流水线中的安全检查门禁,帮助团队在代码合并前拦截潜在的高危配置。支持文本和 JSON 两种报告格式,便于集成到现有 DevSecOps 流程中。
核心功能特点
- 自动扫描 GitHub Actions 工作流 YAML 文件,检测显式的宽泛权限授予(如 `write-all`、`contents: write`)
- 识别高风险模式,包括使用 `pull_request_target` 事件并赋予写权限的工作流
- 发现未显式声明 `permissions` 策略的工作流,暴露默认权限带来的安全风险
- 支持自定义过滤条件,可按文件名、触发事件、权限类型等正则表达式进行筛选
- 提供文本与 JSON 双格式输出,便于人工审查或自动化处理
- 支持关键级别评分机制,可设置阈值触发构建失败以强制执行安全策略
适用场景
该工具最适合应用于对安全性要求较高的开源项目或企业内部代码仓库,尤其是在采用 GitHub Actions 作为主要 CI/CD 平台的环境中。对于维护公共仓库的开发团队而言,定期运行此审计可以防止因误配置导致敏感信息泄露或被恶意 PR 利用。企业安全团队也可将其集成至 PR 检查环节,作为自动化安全门禁的一部分,确保只有符合最小权限原则的工作流变更才能被合并。此外,在合规性审计场景下,该工具能快速生成权限使用报告,证明组织已采取合理措施控制自动化流程的访问范围。对于使用 `pull_request_target` 等高级触发器的工作流,该工具尤为关键,可有效防范‘依赖混淆’类攻击。通过持续监控权限漂移现象,它帮助团队维持长期的安全基线,避免因时间推移导致权限累积扩大。
