Cohere · 官方

使用 Cohere North 和 Wiz 创建安全 Agent | Cohere

Creating a Security Agent with Cohere North and Wiz | Cohere

二〇二六年六月二十六日 · 英文原文

Cohere 通过自定义 Model Context Protocol (MCP) 服务器将企业 AI 智能体平台 North 与云安全平台 Wiz 集成,构建了一个自动化事件响应安全智能体。该智能体暴露八个原子工具,可处理毒性组合爆炸半径分析、端到端事件响应(包括分类、起草 IR 报告、创建 Linear 工单、更新 Wiz 状态)以及自主每周态势简报。此前每个关键发现的手动分类需 30 分钟至 2 小时,该集成将首轮分类循环完全消除,安全工程师从预填充报告和已跟踪工单开始工作。完整实现已在 Cohere 公共仓库开源。

在 Cohere,我们为受监管行业和政府的关键任务环境构建安全、自主的 AI。我们的安全态势必须能够跟上快速迭代的代码库、不断增长的云足迹以及持续演变的威胁格局。

利用我们的企业 AI 智能体平台 Cohere North,我们找到了一种自动化事件响应工作流的方法。本文将详细介绍我们如何通过一个自定义的 Model Context Protocol (MCP) 服务器,将云安全平台 Wiz 连接到 North。

结果如何?一个安全智能体,能够处理整个事件响应工作流,从对关键发现进行分类,到起草 IR 报告、创建工单以及更新 Wiz 状态——所有这些都只需一个 prompt。

Image 1

挑战:以云的速度将洞察转化为行动

Wiz 会揭示风险因素的毒性组合,这些组合会形成关键的攻击路径,例如一个面向互联网、存在严重漏洞且拥有高权限 IAM 访问权限的虚拟机。信号是高保真的。但更棘手的问题是接下来该怎么做。

将发现转化为协调行动仍然需要人工介入——而且这个工作流对每个团队来说都不同。对于我们的团队来说,一个关键发现意味着:

这个过程每个发现可能需要 30 分钟到 2 小时。不是因为信号不清晰,而是因为从洞察到行动的路径尚未针对我们确切的环境、工具和团队节奏构建好。而且,随着我们的云足迹扩大,需要同样仔细处理的发现数量也在增加。我们需要一种在不增加人手的情况下缩小这一差距的方法。

解决方案:North 成为安全智能体

我们通过一个自定义的 MCP 服务器将 North 连接到 Wiz,从而将其转变为一个安全智能体。这种集成使 North 成为一个事件响应智能体,能够处理从分类到解决的工作流,帮助安全工程师更快地响应。

North-Wiz-MCP 架构

North 原生支持 MCP,从而实现了简洁、可扩展的架构:

North (智能体平台) → 自定义 MCP 服务器 → Wiz GraphQL API

Image 2: 描述 North、MCP 服务器和 Wiz 如何通过调用、查询和授权协同工作的示意图 这个轻量级的 Python MCP 服务器将 Wiz 的能力暴露为八个原子工具:

  1. wiz_list_issues:打开问题过滤和列表
  2. wiz_get_issue_details:完整发现上下文检索
  3. wiz_list_toxic_combinations:多因素攻击路径识别
  4. wiz_search_vulnerabilities:带利用过滤器的 CVE 查询
  5. wiz_get_security_posture:聚合指标快照
  6. wiz_query_assets:云资产清单查询
  7. wiz_get_compliance_status:框架合规性评分
  8. wiz_update_issue:状态更改和备注更新

North 通过共享密钥头向 MCP 服务器进行身份验证,而服务器则使用 OAuth2 客户端凭证访问 Wiz,从而确保服务账户令牌在服务器端安全。

Image 3

我们构建的内容:自动化工作流

用例 1:毒性组合爆炸半径分析

“毒性组合”是 Wiz 对多因素攻击路径的术语:即那些单独可控的风险串联起来形成关键暴露的发现。一个面向互联网的虚拟机是个问题。一个存在严重 CVE 的虚拟机是个问题。一个面向互联网、存在严重 CVE,_并且_拥有可访问敏感数据的 IAM 角色的虚拟机,则完全是另一类问题。

North 分析关键的 Wiz 发现,评估攻击链,并根据实际的爆炸半径对其进行排序,同时考虑互联网暴露、权限级别和数据敏感性。这个 20 秒的分析取代了过去需要占用安全工程师半个上午的工作。

这是我们团队设计的 prompt:

"分析 Wiz 中所有关键的毒性组合发现。对于每个发现,推理完整的攻击链,并根据实际爆炸半径进行排序。权衡互联网暴露、权限级别以及攻击者利用后可能实现的目标。以优先级风险表的形式呈现,并为每个排序提供简短的理由。"

在幕后,North 调用

wiz_list_toxic_combinations(severity="CRITICAL"),读取每个发现上的 attackChain.description 字段(其中包含 Wiz 对多跳攻击路径的描述),然后使用推理能力进行排序。输出是一个风险表,根据智能体对实际风险的评估进行排序,同时权衡互联网暴露、权限级别和数据敏感性。

Image 4

用例 2:辅助事件响应

这是需要最多工程投入的工作流。以下是我们编写的 prompt:

"端到端调查我们最关键的未处理 Wiz 问题。获取完整详情,使用 Wiz 中的确切资产名称和日期编写 IR 报告,创建一个 Linear [注:我们的内部项目管理工具] 工单,并在 Wiz 中将问题标记为 IN_PROGRESS,同时添加一个调查备注,总结你的发现。"

具体流程:

报告格式是严格的,编码在系统 prompt 中,以防止我们在早期迭代中遇到的幻觉问题(下文详述)。它包括严重性、状态、报告日期、工单链接、两句话摘要、包含来自 Wiz 的确切字段值的受影响资产表、基于规则描述的根本原因、可利用性和爆炸半径评估,以及优先级修复表。

Image 5

用例 3:自主每周态势简报

我们构建了一个 North 自动化——一个基于图表的定时工作流——每周一凌晨 3:00 运行,无需任何人请求即可生成一份安全态势文档。

该自动化按顺序调用三个工具:wiz_get_security_posture 获取聚合指标,wiz_list_toxic_combinations(severity="CRITICAL") 获取活跃的毒性组合聚焦,以及 wiz_search_vulnerabilities(has_cisa_kev=True) 获取我们环境中被积极利用的 CVE。然后,它生成一份文档模式报告,涵盖:

这份简报每周一早上会出现在安全团队的收件箱中。无需分析师记得去拉取,也无需有人决定其格式,并且数据在运行时刻是最新的。

结果与影响

该集成完全消除了首轮分类循环。安全工程师现在从预填充的事件响应报告和已跟踪的工单开始,而不是原始告警。对于关键发现,首次人工接触点从_阅读告警_转变为_评估智能体的评估_——这是对人类专业知识更智能、更具战略性的利用。

以前,每个发现的分类可能需要 30 分钟到 2 小时,而且在不增加人手的情况下无法加速。对于我们的团队来说,考虑到云环境的快速增长,这种速度是不可持续的。

自动化的每周态势简报现在无需人工努力即可提供一致的可见性,确保团队始终基于最新的态势感知进行运作。

关键技术经验
为什么 North 表现出色

North 的 MCP 原生架构提供了我们所需的杠杆作用:一次构建 Wiz 集成,即可在所有工作流中暴露它。该平台的推理能力能够处理复杂的安全分析,同时通过使用 Wiz 的确切字段值(而非推断名称)来保持严格的数据保真度。这种集成灵活性和分析精度的结合,使 North 成为现代安全运营中心神经系统的独特定位。

完整实现可在我们的公共仓库中找到,使您的组织能够复制此模式并转变您的安全响应能力。

使用 North 自行构建

以下是从零开始到拥有一个可用的 North 智能体的路径。完整源代码在我们的公共仓库中。

前提条件: 一个您拥有控制权的服务账户的 Wiz 租户,访问 North 的权限,以及用于托管服务器的 Docker 或 Cloud Run 项目。

步骤 1:创建 Wiz 服务账户

在 Wiz 中,创建一个具有以下作用域的服务账户:

read:issues
read:resources
read:vulnerabilities
read:threats
read:network_exposure
update:issues
write:issue_status
write:issue_comments   (可选 — 用于调查备注)

保存客户端 ID 和密钥。您将在下一步中用到它们。

步骤 2:部署 MCP 服务器

克隆仓库并复制 .env 文件:

git clone https://github.com/cohere-ai/cohere-security-toolkit.git
cd cohere-security-toolkit/wiz-security
cp .env.example .env

用您的 Wiz 凭证填写 .env,并为 MCP_SERVER_SECRET 生成一个随机值(这是 North 用于向您的服务器进行身份验证的共享密钥):

WIZ_CLIENT_ID=your-client-id
WIZ_CLIENT_SECRET=your-client-secret
WIZ_API_ENDPOINT=https://api.<your-tenant>.app.wiz.io/graphql
WIZ_AUTH_URL=https://auth.app.wiz.io/oauth/token
MCP_SERVER_SECRET=your-random-secret

本地(用于测试):

uv venv && uv pip install -e .
.venv/bin/python wiz_mcp_server.py
# 运行在 http://localhost:3012

使用 ngrok 暴露它,以便 North 可以访问:

ngrok http 3012
# 复制 https://xxxxx.ngrok-free.app URL

生产环境 (Cloud Run):

docker build --platform linux/amd64 -t wiz-mcp-server .
docker tag wiz-mcp-server REGION-docker.pkg.dev/PROJECT/REPO/wiz-mcp-server:latest
docker push REGION-docker.pkg.dev/PROJECT/REPO/wiz-mcp-server:latest

gcloud run deploy wiz-mcp-server \
  --image REGION-docker.pkg.dev/PROJECT/REPO/wiz-mcp-server:latest \
  --region REGION \
  --set-secrets WIZ_CLIENT_ID=wiz-client-id:latest,WIZ_CLIENT_SECRET=wiz-client-secret:latest,MCP_SERVER_SECRET=mcp-server-secret:latest
步骤 3:连接到 North

在 North 中,创建一个新的智能体,并在“工具”部分添加一个 MCP 服务器:

  1. URL: https://your-server-url/mcp
  2. Auth header: X-North-Server-Secret:<您的 MCP_SERVER_SECRET>

North 将自动发现这八个工具。

Image 6

步骤 4:添加系统 prompt

从仓库中打开 north-system-prompt.md,并将全部内容粘贴到智能体的系统 prompt 字段中。这编码了 IR 报告格式、工具路由规则、按发现类型的丰富策略,以及防止智能体幻觉资产名称的命名规则。

Image 7

步骤 5:运行您的第一个 prompt

从一些低风险的操作开始,以验证连接:

"从 Wiz 获取安全态势快照,并总结我们当前的状态。"

如果工具连接正确,智能体会调用 wiz_get_security_posture 并返回一个包含指向您 Wiz 仪表板链接的指标摘要。然后,尝试上面描述的毒性组合分析和端到端 IR 工作流。

Image 8

为什么 North 表现出色

North 的 MCP 原生架构提供了我们所需的杠杆作用:一次构建 Wiz 集成,即可在所有工作流中暴露它。该平台的推理能力能够处理复杂的安全分析,同时通过使用 Wiz 的确切字段值(而非推断名称)来保持严格的数据保真度。这种集成灵活性和分析精度的结合,使 North 成为现代安全运营中心神经系统的独特定位。

完整实现可在我们的公共仓库中找到,使您的组织能够复制此模式并转变您的安全响应能力。

译自 Cohere · 官方 · 录于 二〇二六年六月二十六日