Cortex XDR 工具集

针对Palo Alto Cortex XDR的轻量级工作流工具集,提供调查、响应、工程和管理功能。

  • by Brad-Edwards
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Brad-Edwards/Cortex-XDR-MCP

使用说明

Cortex XDR MCP

非官方 --该项目不隶属于Palo Alto Networks,也不受其认可。

为Palo Alto Cortex XDR精心设计的MCP服务器。

此回购有意 不 将完整的Cortex XDR REST/OpenAPI表面转换为MCP工具。相反,它公开了一组较小的面向工作流的工具,这些工具分为四个服务器:

  • cortex-xdr-investigate
  • cortex-xdr-respond
  • cortex-xdr-engineer
  • cortex-xdr-admin (可选)

该实现是轻依赖的,在运行时只使用Python标准库。

建筑

回购被有意地分成几个小层:

  • client.py 处理签名、身份验证回退、传输错误、gzip和JSON解码
  • service.py 拥有精心策划的Cortex XDR工作流程和输入验证
  • servers/ 将工作流层作为MCP工具集公开
  • mcp_runtime.py 提供stdio MCP运行时
  • verify_live.py 对实时租户运行可重复的烟雾测试
  • tests/ 涵盖传输、运行时、合同和服务行为

这使面向MCP的工具设计保持稳定,即使在底层Cortex API不一致的情况下也是如此。

为什么这个形状

Cortex XDR OpenAPI规范 notes/xdr_api/Cortex-xdr.json 它很大,端点很重。该项目遵循精心策划的MCP设计:

  • 没有通用的REST传递
  • 没有生的 request_data 或过滤器阵列工具
  • 读重调查与写重响应分离
  • 在可行的情况下,异步Cortex工作流被打包到单个MCP工具中

服务器

cortex-xdr-investigate

阅读大量工具,了解事件分类、端点上下文、风险审查和XQL搜索。

工具:

  • list_incidents
  • list_alerts
  • get_incident_casefile
  • search_endpoints
  • get_endpoint_context
  • list_risky_entities
  • get_entity_risk
  • run_xql

cortex-xdr-respond

用于遏制和补救的显式ID响应工具。

工具:

  • update_incident
  • update_alerts
  • set_endpoint_isolation
  • set_file_quarantine_state
  • scan_endpoints
  • retrieve_endpoint_files
  • run_endpoint_script
  • run_forensics_triage
  • manage_hash_reputation
  • check_job_status

cortex-xdr-engineer

安全工程和端点策略工作流。

工具:

  • list_profiles
  • manage_prevention_profile
  • manage_exception_rule
  • manage_prevention_override
  • manage_iocs
  • manage_endpoint_tags
  • manage_agent_packages
  • list_device_control_violations

cortex-xdr-admin

可选租户/管理员界面。保持与默认分析师代理的分离。

工具:

  • get_tenant_info
  • list_rbac_users
  • list_rbac_roles
  • list_user_groups
  • set_user_role
  • manage_syslog_integration
  • manage_authentication_settings
  • list_audit_logs
  • manage_xql_dataset
  • manage_lookup_dataset

配置

在启动任何服务器之前设置这些环境变量:

  • CORTEX_XDR_BASE_URL
  • CORTEX_XDR_API_KEY
  • CORTEX_XDR_API_KEY_ID

可选:

  • CORTEX_XDR_TIMEOUT_SECONDS 违约: 60
  • CORTEX_XDR_VERIFY_TLS 违约: true
  • CORTEX_XDR_AUTH_MODE 违约: auto
  • CORTEX_XDR_MCP_LOG_LEVEL 违约: INFO

CORTEX_XDR_AUTH_MODE=auto 将首先尝试标准的公共API身份验证,并使用自动回退到高级签名身份验证 X-XDR-NONCE 和 X-XDR-TIMESTAMP 如果租户拒绝标准标头表单。

日志记录被写入stderr,因此stdout上的MCP stdio流量保持干净。集 CORTEX_XDR_MCP_LOG_LEVEL=DEBUG 当您需要请求级故障排除时。

示例见 .env.示例.

安全与验证

公共MCP界面旨在使错误更难发生:

  • 变异工具需要非空 reason
  • 变异工具需要 confirm=true 除非 dry_run=true
  • 有意不公开不安全的自由格式原始REST参数
  • 列表/搜索分页在内部被限制和规范化
  • 在进行API调用之前验证工具输入
  • API和运行时失败作为结构化错误返回

跑步

开发模式

使用 PYTHONPATH=src 直接从repo:

PYTHONPATH=src python3 -m cortex_xdr_mcp investigate
PYTHONPATH=src python3 -m cortex_xdr_mcp respond
PYTHONPATH=src python3 -m cortex_xdr_mcp engineer
PYTHONPATH=src python3 -m cortex_xdr_mcp admin
PYTHONPATH=src python3 -m cortex_xdr_mcp verify-live

安装模式

在本地安装包并使用生成的脚本:

uv pip install -e .
cortex-xdr-investigate
cortex-xdr-respond
cortex-xdr-engineer
cortex-xdr-admin
cortex-xdr-verify-live

实时验证

您可以在不改变状态的情况下对实时Cortex XDR租户运行可重复的烟雾测试:

PYTHONPATH=src python3 -m cortex_xdr_mcp verify-live

有用的标志:

  • --json 用于机器可读输出
  • --no-admin 跳过管理表面探测
  • --no-extended 跳过额外的端点工程和RBAC探测
  • --tool-timeout 60 增加每个工具的超时时间
  • --xql-wait 30 为XQL烟雾查询提供更长的完成窗口

验证者:

  • 运行直接健康检查以确认身份验证
  • 在stdio上练习具有代表性的MCP工具
  • 仅使用 dry_run=true 用于可写工具
  • 注释已知 403 并使用基于规范的提示来标记门控故障

测试

与以下人员一起运行单元和合同测试:

PYTHONPATH=src python3 -m unittest discover -s tests -t .
python3 -m compileall src

测试套件旨在在以下情况下大声失败:

  • 身份验证和传输回归
  • MCP协议/运行时回归
  • 服务请求形状漂移
  • 意外扩大不安全行为的输入验证更改

如果添加或更改工具,请更新特定于工具的单元测试和合同测试。

备注

  • 该实现目前处于所提供的Cortex XDR API范围内。
  • 严格的XDR规范没有暴露出一级漏洞API,因此设计强调调查、响应和工程工作流。
  • 可选的管理服务器存在,但在低信任代理设置中默认情况下不应连接它。
  • 客户端支持标准和高级Cortex XDR API身份验证模式。
  • 一些Cortex XDR端点仍然是租户或功能门控的,即使它们存在于规范中; verify-live 有助于将代码问题与租户能力问题分开。

许可证

该项目根据 MIT许可证.