SIREN

MCP 集成

了解 SIREN 提供的 MCP 集成功能

仅远程模式支持

SIREN 服务端内置 模型上下文协议(MCP)服务,使 AI 助手能够直接与 SIREN 交互,在受害主机上执行命令、获取安全告警详情等。这是 Agentic 应急响应 的基础能力。

配置

MCP 服务由配置文件中的 mcp.enabled 控制,默认启用。它与 Web 控制台 共享同一 HTTP 监听地址和端口(默认 0.0.0.0:8080),并通过 /mcp 子路径暴露。监听地址和端口分别由 webui.listenwebui.port 控制。

mcp.enabledwebui.enabled 相互独立:关闭 WebUI 后,只要 mcp.enabled 仍为 true,MCP 客户端仍可访问 http://<host>:<port>/mcp;关闭 MCP 后,WebUI 可以继续独立运行。

`/mcp` 端点不鉴权

MCP 客户端不携带浏览器会话,因此 /mcp 不经 WebUI 鉴权中间件——即使创建了 WebUI 账号也无法保护它。任何能访问该端口的人都可以通过 run 工具在受害主机上执行命令。请务必将 webui.listen 限制在可信网络(如 127.0.0.1 或内网),或在反向代理加网络 ACL 之后再暴露监听端口。

从 v1.x 升级

v2.0.0 起 mcpPort 配置项与 --mcp-port 参数已删除,MCP 不再占用独立端口。升级后 MCP 客户端 URL 无需修改(仍是 http://<host>:<port>/mcp),只需确认端口对齐 webui.port

将以下配置添加到 MCP 客户端(如 Claude Desktop、Cursor 等):

mcp.json
{
  "siren": {
    "type": "http",
    "url": "http://<SIREN Server IP>:8080/mcp"
  }
}

可用工具

工具参数描述
ls列出所有已连接的客户端,返回 ID、操作系统、连接地址(host:port)、备注、已安装插件等信息
runclient_id, command在指定客户端上执行命令并返回结果(超时跟随 recon.commandTimeout 并保留额外缓冲,50KB 上限),支持对同一客户端并发执行
get_alarm_detailuid, event_id通过 SOAR 平台获取指定的安全告警详情,返回告警类型、攻击源、受影响资产等

慢命令超时

如果需要让 MCP / AIR 执行更慢的排查命令,请在服务端和客户端配置中保持 recon.commandTimeout 一致或至少让服务端等待时间不短于客户端执行时间。

提示

AI 助手可以通过 ls 获取客户端列表后,再通过 run 在指定客户端上执行任意命令。这使得 AI 能够自主完成信息收集、威胁排查等应急响应任务。

命令黑名单

run 工具在执行命令前会检查命令是否匹配配置文件中的 mcp.cmdBlacklist 正则表达式列表。匹配到的命令将被拒绝执行,并向 AI 返回错误信息。

默认黑名单包含以下类别的危险操作:

  • 文件删除与磁盘写入rmrmdirmkfsdd if=、向块设备重定向(如 > /dev/sda
  • 进程终止killkillallpkill
  • 系统关机与运行级别shutdownreboothaltpoweroffinit 0-6
  • 服务管理systemctl stop/disable/maskservice stop
  • 防火墙清空iptables -F/-X
  • 权限与用户chmod 000chownuserdelpasswd
  • 痕迹清除crontab -rhistory -c

自定义

可根据实际需求在配置文件中添加或移除黑名单规则。规则使用 Go 正则表达式语法。

相关内容

On this page