关于 secure-github-actions
用于创建、审查和审计 GitHub Actions 工作流的安全技能,面向维护 CI 工作流的开发者。它强调固定依赖动作的提交 SHA、最小权限和保护不可信输入,并通过参考文件指导不同任务。
主要功能
- 01将外部 uses 固定到完整 SHA
- 02避免直接将不可信值拼入 Shell
- 03设置明确的最小权限
- 04检查信任边界与 secrets 暴露
- 05按任务读取安全参考文件
适用场景
- 01创建或修改 GitHub Actions 工作流
- 02审查工作流中的依赖与权限
- 03对仓库执行完整安全审计
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ vechain/ vechain-ai-skills --skill secure-github-actions安装后在 Claude Code 中输入/secure-github-actions确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/audit-checklist.mdsecure-patterns.mdsha-pinning.mdworkflows.md详细介绍
安全的 GitHub Actions
使用供应链安全默认设置创建、审查和审计 GitHub Actions 工作流。
关键规则
- 先阅读相关参考文件。 如果用户的请求涉及下方参考表中的任何主题,必须先阅读相应文件,然后再进行其他操作。简要说明正在阅读哪些文件,以便用户确认此技能已启用。
- 将每个非本地
uses:引用固定到完整的 40 个字符的提交 SHA。 将@v*、@main、@master、分支名称和短 SHA 视为安全债务。 - 绝不捏造 SHA。 从 GitHub 获取 SHA,或询问用户;如果无法验证正确的 SHA,请明确说明,不要伪造。
- 除非用户明确要求,否则不要引入
pull_request_target;即便如此,工作流也绝不能使用机密或写入权限执行不受信任的代码。 - 绝不要将不受信任的上下文直接拼接到 shell 命令中。 将
${{ github.* }}、${{ inputs.* }}等值移入env:,并为 shell 变量加引号。 - 明确设置最小权限的
permissions:。 默认只读,仅向确实需要的特定作业授予写入作用域。 - 用户要求“审计”、“加固”或“安全扫描”仓库时,始终运行完整审计清单。
- 绝不默默跳过检查。 如果缺少工具(gitleaks、trufflehog、zizmor),请报告并建议安装。
- 压缩或丢失上下文后,继续操作前重新阅读此 SKILL 和参考文件。
操作流程
编写或编辑工作流时
- 对任务分类:新建工作流、编辑工作流、可复用工作流或安全审查。
- 阅读 references/workflows.md 和 references/secure-patterns.md。
- 审查每个
uses:引用:- 本地操作,如
./.github/actions/foo,无需更改。 - 步骤级操作和作业级可复用工作流必须使用完整 SHA。
- 在注释中保留便于识别的版本标签(例如
# v4.3.1)。
- 本地操作,如
- 审查信任边界:
- 优先使用
pull_request,而不是pull_request_target。 - 将来自 fork 的 PR 数据视为不受信任。
- 避免向不受信任的代码路径暴露机密或写入令牌。
- 优先使用
- 审查每个
run:步骤:- 通过
env:传递动态值。 - 为 shell 变量加引号。
- 如果简单的 shell 命令也能完成任务,优先使用它,而不是新增第三方操作。
- 通过
- 添加或更新维护防护措施:
- 确保 Dependabot 更新
github-actions生态系统。 - 提醒用户注意传递依赖风险:固定版本的操作仍可能在内部引用可变操作。
- 确保 Dependabot 更新
完整安全审计
用户要求“审计”、“加固”或“安全扫描”仓库时:
- 阅读 references/audit-checklist.md。
- 执行所有检查;尽可能使用子 Agent 并行处理。
- 按严重性分组呈现发现:CRITICAL、HIGH、MEDIUM、LOW。
- 最后提供汇总表和按优先级排列的行动清单。
参考文件
| 主题 | 文件 | 阅读时机 |
|---|---|---|
| 工作流加固模式 | references/workflows.md | 创建、编辑或审查工作流时 |
| 安全工作流模板 | references/secure-patterns.md | 从头编写新工作流时 |
| 完整审计流程 | references/audit-checklist.md | 对仓库执行安全审计时 |
| SHA 固定自动化 | references/sha-pinning.md | 将操作固定到提交 SHA 时 |
工具
审计会检查以下工具,并报告缺少的工具:
| 工具 | 用途 | 安装 |
|---|---|---|
gitleaks | 扫描 Git 历史记录中的机密 | brew install gitleaks |
trufflehog | 使用验证进行深度机密扫描 | brew install trufflehog |
zizmor | 对 GH Actions 进行静态分析 | brew install woodruffw/tap/zizmor |
gh | 用于 API 调用的 GitHub CLI | brew install gh |
评论
支持 Markdown