项目简介

'agentic_soc_agentspace' 项目旨在Google Cloud上部署智能安全运维代理。该代理利用Model Context Protocol (MCP) 与各种安全工具(如Google Chronicle、SOAR平台、Google威胁情报和安全指挥中心)进行深度集成,为大型语言模型(LLM)提供丰富的安全上下文和操作能力,从而实现自动化威胁检测、响应和态势监控。

主要功能点

  • 部署安全智能体: 在Google Vertex AI Agent Engine上部署AI代理,使其具备访问各种安全工具的能力。
  • 安全工具集成: 通过MCP协议连接并利用Google Chronicle (SIEM)、SOAR (安全编排、自动化与响应)、Google Threat Intelligence (GTI) 和 Security Command Center (SCC) 的功能。
  • 自动化安全操作: 允许LLM调用这些工具,执行威胁分析、事件响应、漏洞管理和合规性监控等任务。
  • 会话管理与能力声明: MCP服务器为LLM客户端提供标准化的接口,管理会话状态并声明可用的安全工具。
  • Prompt模板支持: 支持定义和渲染Prompt模板,以实现可定制的LLM交互模式。

安装步骤

  1. 克隆仓库及子模块:
    git clone --recurse-submodules https://github.com/dandye/agentic_soc_agentspace.git
    cd agentic_soc_agentspace
  2. 配置环境: 复制 '.env.example' 为 '.env' 文件,并根据您的Google Cloud项目和安全工具API密钥进行编辑。
    cp .env.example .env
    # 根据注释编辑 .env 文件,填入您的 PROJECT_ID, LOCATION, STAGING_BUCKET, GOOGLE_API_KEY
    # 以及可选的安全工具配置,例如 CHRONICLE_CUSTOMER_ID, SOAR_URL, VT_APIKEY 等。
    # 确保根据您的实际需求配置所有相关变量。
  3. 安装Python依赖:
    pip install -r requirements.txt
  4. 部署Agent Engine: 运行部署命令,这将部署主代理及其集成的MCP安全工具。
    make agent-engine-deploy
    部署成功后,请将输出中的 'REASONING_ENGINE' ID更新到 '.env' 文件中,供后续操作使用。
  5. (可选)注册到AgentSpace: 如果您希望通过Google Cloud AgentSpace管理和测试代理,请在Google Cloud控制台创建AgentSpace应用,获取App ID,并更新到 '.env' 文件中的 'AGENTSPACE_APP_ID'。然后执行注册命令:
    make agentspace-register

MCP服务器配置 (内部集成说明)

此项目作为Google Vertex AI上的一个高级智能代理,它通过集成多个基于Model Context Protocol (MCP) 实现的安全工具服务器来扩展其能力。这些MCP服务器(例如Chronicle、SOAR、GTI、SCC的MCP实现)被项目内部启动并作为工具供主代理调用。

下方展示了这些内部MCP服务器的启动配置信息。这些配置由项目的 'main.py' 文件用于启动和管理各个MCP服务器进程,并通过标准输入输出流(Stdio)与它们通信。对于希望开发MCP客户端的用户而言,这些信息可以帮助理解MCP服务器通常需要哪些配置参数才能被客户端(无论是本项目的内部代理还是独立的MCP客户端)正确识别和连接。

请注意,外部的LLM客户端通常不会直接连接到这些内部的Stdio MCP服务器实例,而是通过Google Vertex AI Agent Engine与整个智能体系统进行交互。

  • Chronicle/SecOps SIEM MCP服务器配置示例: 用于连接Google Chronicle SIEM,提供威胁检测和事件查询能力。 'main.py' 内部配置格式如下:

    {
        "server_name": "secops_siem_mcp_server",
        "command": "uv",
        "args": [
            "--directory",
            "./mcp-security/server/secops/secops_mcp",
            "run",
            "server.py"
        ],
        "env": {
            "CHRONICLE_PROJECT_ID": "[您的Chronicle项目ID]",
            "CHRONICLE_CUSTOMER_ID": "[您的Chronicle客户ID]",
            "CHRONICLE_REGION": "[您的Chronicle区域]",
            "SECOPS_SA_PATH": "[服务账号JSON文件路径,相对于server.py]"
        }
    }
    • 'command': MCP服务器的启动程序,此处为 'uv' (一个Python依赖管理器和运行器)。
    • 'args': 传递给 'command' 的参数,指定MCP服务器代码的目录和启动脚本 ('server.py')。
    • 'env': 启动MCP服务器时所需的环境变量,用于认证和配置Chronicle连接。
  • SOAR MCP服务器配置示例: 用于连接SOAR平台,实现自动化安全响应工作流。 'main.py' 内部配置格式如下:

    {
        "server_name": "secops_soar_mcp_server",
        "command": "uv",
        "args": [
            "--directory",
            "./mcp-security/server/secops-soar/secops_soar_mcp",
            "run",
            "server.py"
        ],
        "env": {
            "SOAR_URL": "[您的SOAR平台URL]",
            "SOAR_APP_KEY": "[您的SOAR应用密钥]"
        }
    }
    • 'command', 'args': 同上。
    • 'env': 启动MCP服务器时所需的环境变量,用于认证和配置SOAR平台连接。
  • Google Threat Intelligence (GTI) MCP服务器配置示例: 用于访问威胁情报数据,分析IOCs(妥协指标)。 'main.py' 内部配置格式如下:

    {
        "server_name": "gti_mcp_server",
        "command": "uv",
        "args": [
            "--directory",
            "./mcp-security/server/gti/gti_mcp",
            "run",
            "server.py"
        ],
        "env": {
            "VT_APIKEY": "[您的VirusTotal API密钥]"
        }
    }
    • 'command', 'args': 同上。
    • 'env': 启动MCP服务器时所需的环境变量,用于认证和配置Google Threat Intelligence (如VirusTotal) 连接。
  • Security Command Center (SCC) MCP服务器配置示例: 用于监控Google Cloud资源的安全态势和发现。 'main.py' 内部配置格式如下:

    {
        "server_name": "scc_mcp_server",
        "command": "uv",
        "args": [
            "--directory",
            "./mcp-security/server/scc",
            "run",
            "scc_mcp.py"
        ],
        "env": {}
    }
    • 'command', 'args': 同上。
    • 'env': SCC工具可能无需额外的环境变量,或从部署环境中继承。

基本使用方法

  1. 测试已部署的代理: 确保 '.env' 文件中的 'REASONING_ENGINE' 已正确设置(该值来自 'make agent-engine-deploy' 命令的输出),然后运行测试脚本:
    python test_agent_engine.py
  2. 向代理提问 (示例): 在 'test_agent_engine.py' 脚本中,您可以修改 'message' 变量来向部署的代理发送不同的查询:
    # 示例查询,您可以根据需要进行修改
    message="List SOAR Cases"
    # message="What are the recent security alerts?"
    # message="Analyze IOCs for domain malicious.com"
    # message="Show Security Command Center findings"
    # message="Investigate user account compromise indicators"
    # message="Find a runbook titled Malware IRP"
    代理将利用其集成的MCP安全工具来分析您的查询并返回相应的回答。

信息

分类

AI与计算