该技能用于审查、审计和加固 .github/workflows/ 下的工作流文件,帮助以安全默认方式编写新工作流。适用场景包括使用 pull_request_target、workflow_run、issue_comment 等触发器的工作流,GITHUB_TOKEN 权限问题,是否将 Action 固定到提交 SHA,以及在 run: 步骤中处理不可信输入(议题标题、PR 正文、分支名、提交信息)、OIDC 云认证、CI 机密处理和公共仓库上的自托管运行器。核心认识是 ${{ }} 表达式会先被拼接进脚本再由 shell 执行,因此任何可被外部贡献者影响的表达式都是代码注入点。执行流程为:映射触发器与信任级别;在每个 run: 块、actions/github-script 的 script: 及自定义 Action 输入中排查脚本注入;检查特权触发器是否执行不可信代码;审计 permissions: 块并建议最小权限;审计 uses: 引用(第三方 Action 应固定到 40 位提交 SHA,分支引用标记为高风险);检查机密与输出处理(不打印机密、避免 set -x、用随机分隔符写 GITHUB_ENV/GITHUB_OUTPUT、按需设置 persist-credentials: false);最后按严重级别(CRITICAL/HIGH/MEDIUM/LOW/INFO)输出汇总表与逐项发现,引用问题 YAML 并给出修复前后对比,不自动应用更改。限制:仅针对 GitHub Actions 工作流,不覆盖通用应用代码漏洞;资料未提供具体安装或调用命令、收费与平台信息。
github-actions-hardening
安全与审计
更新于 10-16 08:48