关于 GitHub Actions Audit
GitHub Actions Audit 是用于检查 GitHub Actions 工作流文件安全与供应链风险的 MCP 服务。它提供包含严重级别、问题位置、修复建议和 YAML 修复片段的结果。
主要功能
- 0121 项工作流安全检查
- 02审计 YAML 内容或 URL
- 03专项检查密钥与权限
- 04供应链和运行器检查
- 05提供修复建议与片段
适用场景
- 01合并前审查工作流
- 02查找密钥泄露和脚本注入
- 03检查 Action 固定版本及令牌权限
MCP 相关
向 MCP 客户端提供工作流审计和检查目录工具。客户端可提交 YAML 内容或 HTTPS 工作流 URL。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://unbearable-dev--github-actions-audit.apify.actor/mcpclaude mcp add --transport http unbearabledev-github-actions-audit https://unbearable-dev--github-actions-audit.apify.actor/mcp{"mcpServers":{"unbearabledev-github-actions-audit":{"type":"http","url":"https://unbearable-dev--github-actions-audit.apify.actor/mcp"}}}在 Cursor 中打开{"servers":{"unbearabledev-github-actions-audit":{"type":"http","url":"https://unbearable-dev--github-actions-audit.apify.actor/mcp"}}}在 VS Code 中打开{"mcpServers":{"unbearabledev-github-actions-audit":{"type":"http","url":"https://unbearable-dev--github-actions-audit.apify.actor/mcp"}}}{"mcpServers":{"unbearabledev-github-actions-audit":{"serverUrl":"https://unbearable-dev--github-actions-audit.apify.actor/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://unbearable-dev--github-actions-audit.apify.actor/mcp需要授权工具
详细介绍
GitHub Actions 安全审计
MCP 服务,用于审计
.github/workflows/*.yml文件中的供应链风险。可检测脚本注入、令牌泄露、未固定版本的 Actions、过于宽泛的权限,以及pull_request_target的危险用法——这些模式曾导致多起 2024–2025 年供应链安全事件。
由 Unbearable Labs 构建。 按事件付费——只有实际调用工具时才会计费。
可在以下平台使用
- Apify Actor Store — 首选平台,按量计费(PPE)
- MCPize — 等待提交
- MCP.so — 等待提交
- PulseMCP — 等待提交
- Smithery — 等待提交
- Glama — 等待提交
Newsletter: Unbearable TechTips Weekly · 所有 Actor: github.com/UnbearableDev
功能
让任何支持 MCP 的客户端(Claude Desktop、Cursor、n8n、Make、Zapier、自定义 Agent)连接到此服务,提供工作流 YAML,即可获取结构化的审计结果,包括:
- 严重程度 — 严重 / 高 / 中 / 低 / 信息
- 受影响的作业和步骤 — 问题的确切位置
- 说明 — 问题的重要性及实际攻击途径
- 修复建议 — 应采取的措施
- 修复代码片段 — 可直接粘贴的 YAML
工具
| 工具 | 用途 |
|---|---|
audit_workflow(workflow_yaml? | workflow_url?, min_severity='low') | 运行所有检查 |
check_secrets(...) | 仅检查密钥泄露途径 |
check_permissions(...) | 仅检查 GITHUB_TOKEN 的权限范围问题 |
check_action_pinning(...) | 仅检查 Action 版本固定情况 |
check_runner_security(...) | 检查自托管运行器和脚本注入 |
check_workflow_config(...) | 检查超时和配置规范 |
check_supply_chain_advanced(...) | 检查 TeamPCP 级别的供应链攻击模式(GHA-201..208) |
list_checks(category?) | 浏览检查项目目录 |
请准确提供 workflow_yaml(粘贴内容)或 workflow_url(HTTPS URL,通常是指向特定工作流文件的 GitHub raw URL)中的一个。
检查目录(v2:21 项检查)
| ID | 类别 | 严重性 | 标题 |
|---|---|---|---|
| GHA-001 | secrets | high | 密钥直接插入 run: 脚本 |
| GHA-002 | secrets | high | 通过 echo / set-output 输出密钥 |
| GHA-003 | secrets | medium | 在 if: 条件中使用密钥 |
| GHA-004 | secrets | high | env: 中存在硬编码凭据模式 |
| GHA-010 | permissions | high | 授予了 permissions: write-all |
| GHA-011 | permissions | medium | 未设置顶层 permissions:(继承了宽泛的默认权限) |
| GHA-013 | permissions | high | pull_request_target + 检出 PR head = PWNing 模式 |
| GHA-020 | action_pinning | high | 第三方 action 固定到可变标签 |
| GHA-021 | action_pinning | high | 第三方 action 固定到可变分支 |
| GHA-022 | action_pinning | medium | 第一方 action 未固定到 SHA |
| GHA-030 | runner_security | medium | 在来自 fork 的 pull_request 中使用了自托管 runner |
| GHA-032 | runner_security | high | 通过插入不可信的 github.event.* 导致脚本注入 |
| GHA-040 | workflow_config | low | job 未设置 timeout-minutes |
| GHA-201 | supply_chain_advanced | high | Action 固定到未固定的分支引用(TeamPCP 级别:@main/@master) |
| GHA-202 | supply_chain_advanced | high | Action 固定到可变标签 — 建议固定到 SHA |
| GHA-203 | supply_chain_advanced | critical | pull_request_target + 检出 PR head SHA/ref(codecov/tj-actions 利用路径) |
| GHA-204 | supply_chain_advanced | high | 在 run: 中通过 github.event.* 用户可控字段导致脚本注入 |
| GHA-205 | supply_chain_advanced | medium | Action 来自未列入允许名单的所有者(不可信第三方) |
| GHA-206 | supply_chain_advanced | high | 顶层 permissions: write-all 或 contents: write 未按 job 限定权限范围 |
| GHA-207 | supply_chain_advanced | medium | 在 run: 块中通过 echo / cat 记录密钥 |
| GHA-208 | supply_chain_advanced | low | Action 使用已知的弃用标签 |
定价
| 事件 | 美元 |
|---|---|
| 任何 audit / check_* 工具调用 | $0.02 |
list_checks 发现调用 | $0.005 |
从 Claude Desktop 连接
{
"mcpServers": {
"gha-audit": {
"transport": "streamable-http",
"url": "https://YOUR-ACTOR-URL.apify.actor/mcp"
}
}
}
Unbearable Labs 的姊妹 MCP
docker-compose-audit—docker-compose.yml安全审计dockerfile-audit— Dockerfile 安全与质量检查hu-postcode-validator— 匈牙利邮政编码查询
暂未涵盖的内容
- 可复用工作流审计(多文件解析)
- CodeQL 级别的数据流跟踪
- Marketplace 上架 action 的信誉评分
源代码 / 联系方式
源代码:github.com/UnbearableDev/github-actions-audit。
问题与想法:[email protected]。
📬 由 Unbearable Labs 的 Noel 构建。欢迎订阅简报,获取更多 MCP 服务与审计技巧:https://unbearabletechtips.beehiiv.com
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。