项目简介
Gato-X 是一个针对 GitHub Actions 流水线的快速安全扫描和攻击工具,用于识别配置错误、注入漏洞、TOCTOU 漏洞和自托管运行器接管等安全问题。此 MCP 服务器版本通过标准的 Model Context Protocol (MCP) 协议提供 Gato-X 的核心枚举功能,方便 LLM 客户端或其他兼容 MCP 的应用进行集成,以标准化方式获取 GitHub Actions 环境的安全上下文。
主要功能点
- 组织级枚举: 全面枚举指定 GitHub 组织的安全状况,包括该组织下的公共和私有仓库、组织级自托管运行器和组织级秘密。
- 仓库级枚举: 深入分析单个 GitHub 仓库,识别仓库级自托管运行器、可访问的秘密以及与工作流相关的安全风险(如 Pwn Request、注入漏洞、Dispatch TOCTOU 漏洞)。
- 批量仓库枚举: 对提供的仓库列表进行批量安全分析。
- 用户自枚举: 枚举并分析认证用户(PAT 所有者)可访问的所有组织和仓库的安全状况。
- PAT 验证: 验证提供的 GitHub Personal Access Token (PAT) 的有效性、权限范围,并列出可访问的组织。
- 风险识别: 识别并报告 GitHub Actions 工作流中的具体漏洞模式和配置风险。
安装步骤
- 安装 Python: 确保您的系统安装了 Python 3.10 或更高版本。
- 创建并激活虚拟环境 (推荐):
python3 -m venv venv source venv/bin/activate - 安装 Gato-X: 使用 pip 安装 Gato-X 及其依赖。
pip install gato-x - 安装 Git: 确保您的操作系统已安装 'git' 命令,并且可以在系统的 PATH 环境变量中找到。某些高级的静态分析功能依赖于 Git。
服务器配置
MCP 客户端需要以下信息来发现并连接 Gato-X MCP 服务器。此配置信息描述了如何启动服务器以及其基本能力。
请注意:Gato-X 需要一个具有适当权限的 GitHub Personal Access Token (PAT)。您必须在启动 MCP 服务器的环境中将该 PAT 设置为 'GH_TOKEN' 环境变量的值。例如:
export GH_TOKEN=ghp_YourGitHubPersonalAccessToken
MCP 工具调用时可能会根据需要支持代理 ('socks_proxy', 'http_proxy')、自定义 GitHub URL ('github_url') 等参数,这些参数通过 MCP 请求的 'params' 字段传递给工具函数,不是服务器启动命令的参数。
{ "server_name": "Gato-X MCP Server", "command": "python", "args": ["-m", "gatox.mcp.mcp_server"], "description": "MCP server exposing Gato-X GitHub enumeration tools, requires GH_TOKEN environment variable.", "tools": [ // 工具列表将在客户端连接后由服务器动态声明 // 预期的工具包括: enumerate_organization, enumerate_repository, // enumerate_repositories, self_enumeration, validate_pat ], "resources": [ // 此 MCP 服务器目前不声明通用的 Resources ] }
基本使用方法
- 设置 GitHub PAT: 在启动服务器的环境中设置 'GH_TOKEN' 环境变量,包含您的 GitHub PAT。
export GH_TOKEN=your_github_pat - 启动 MCP 服务器: 在命令行中运行以下命令来启动 Gato-X MCP 服务器。服务器将使用 Stdio 传输协议与 MCP 客户端通信。
python -m gatox.mcp.mcp_server - 连接客户端: 启动您的 MCP 客户端,并配置它连接到此 Stdio MCP 服务器(使用上述配置信息)。客户端将能够发现服务器提供的工具(如 'enumerate_organization'、'enumerate_repository' 等),并通过发送 JSON-RPC 请求调用这些工具,执行 Gato-X 的安全枚举功能。
信息
分类
开发者工具