Web 控制台
了解如何通过浏览器使用 SIREN
SIREN 服务端内置 Web 控制台,提供常用远程工作流的图形化入口。无需登录控制主机操作 tmux 或 REPL,通过浏览器即可完成客户端管理、交互式 Shell、Agentic 应急响应、SOAR 命令调用以及取证文件浏览。
启动与访问
WebUI 随 siren_server 自动启动,默认监听 0.0.0.0:8080。
./siren_server启动后访问:
http://<SIREN Server IP>:8080端口统一
从 v2.0.0 起,WebUI 与 MCP 服务 共享同一端口(默认 8080)。MCP 客户端通过 /mcp 子路径访问,WebUI 通过根路径访问;两者的启停开关分别是 webui.enabled 和 mcp.enabled。
账号鉴权
WebUI 使用基于 Session Cookie 的账号鉴权机制,密码通过 bcrypt 哈希后存储在 SQLite 数据库(默认 data/users.db)。
安全注意
当用户数据库不存在或没有任何用户时,WebUI 会自动禁用鉴权、允许匿名访问。部署到公网前务必先创建至少一个用户。
管理用户账号
数据库路径一致性
data/users.db 默认相对当前工作目录解析。如果 siren_server user add 与 siren_server 在不同目录启动,会写入/读取不同的数据库,导致鉴权失效。建议在 server_config.yaml 中显式配置绝对路径:
webui:
userDBPath: /opt/siren/data/users.db或者在 systemd unit 中设置 WorkingDirectory。
功能页面
Clients
Shells
Agentic IR
Investigations
Files
Artifacts
Dossier
Clients
等价于服务端 REPL 的 ls、note、allow、deploy、clean 命令。每行展示一个客户端,支持:
- 备注编辑:点击备注直接在行内修改
- 备注恢复:备注会绑定到客户端稳定身份,客户端重连后自动恢复
- Files 快捷入口:从客户端行直接打开该客户端的 Files 页面
- Process 快捷入口:从客户端行直接打开该客户端的进程分析表单
- 放行(allow):调用 SOAR 将受害主机出口 IP 加入安全组白名单
- 单机部署(deploy):输入 Alibaba Cloud UID、ECS Instance ID 与可选 Public IP,通过云助手一键部署 SIREN 客户端
- 批量部署(deploy-batch):切换到 Batch 模式后,每行输入
instanceId或instanceId,publicIp,同一 UID 下支持 2-20 台机器;WebUI 会流式展示每台机器的运行状态和最终汇总 - 清理(clean):远程清除受害主机上的 SIREN 痕迹(带二次确认)
批量部署规则
批量部署默认并发 3 台,单台失败不会中断其他目标。运行日志按实际完成顺序出现,每条消息都带有目标前缀;最终汇总按输入顺序统计成功与失败,便于后续重试失败目标。
Shells
每个客户端可开启多个终端标签。底层通过 WebSocket 桥接到服务端,服务端再以 TLS 转发到受害主机 PTY。切换到其他页面(Clients/AIR/Artifacts)时 Shell 会话保持活动,回到 Shells 页可继续输入。
Agentic IR
在浏览器里启动 AI Agent 完成 Agentic 应急响应。支持选择 Claude 或 Codex Provider,新建会话,或恢复当前项目的历史会话。
选择目标客户端后可选两种新建模式:
- 告警事件模式:输入阿里云 UID + 云安全中心告警 ID,自动拉取告警详情
- 自定义 Prompt:自由输入应急响应指令
也可以切换到 Resume 模式,搜索并选择当前 siren_server 工作目录对应的历史会话。Claude 会恢复 Claude Code session;Codex 会恢复 Codex session。WebUI 会先展示解析出的历史 user / assistant 消息,再用原 session ID 继续会话。
恢复范围
Resume 只读取 siren_server 当前工作目录对应的 Provider history,不会跨项目列出其他目录的历史会话,也不会向浏览器暴露本机 JSONL 文件路径。
页面会按顺序展示 AI 回复、工具调用和结果,并支持在同一会话继续追问。WebUI AIR 会使用 SIREN MCP 工具,请确认 MCP 服务已启用。它不依赖 tmux,服务端 REPL 的 air 命令仍保持原有交互式体验。
Investigations
Investigations 页面用于承载需要等待结果的调查工具,目前包含 AccessKey 调查、客户端 Recon 和进程分析。
- AccessKey:输入 Alibaba Cloud UID、AccessKey ID(Region 可选,留空默认
cn-hangzhou)后,服务端调用现有 SOAR 剧本生成 Markdown 报告。WebUI 只展示真实的 playbook 运行状态,完成后可直接打开 Artifacts 查看报告。 - Recon:选择在线客户端并下发信息收集命令。页面展示服务端从客户端日志中解析出的阶段列表,例如
Recon.Basic、Recon.User、Recon.Process、Save report to Artifacts,不再暴露原始彩色日志。 - Process Analysis:选择 Linux 客户端后,可按 PID、监听端口或进程名查询进程详情。按名称匹配到多个进程时,WebUI 会列出候选项,可点击候选 PID 继续深入分析。
- 报告入口:调查结束后会显示 Open Artifacts 按钮,直接跳转到生成的报告文件;报告也会保留在服务端工作目录中,方便远程部署环境查看。
进度展示原则
WebUI 只展示服务端能真实观测到的阶段。AccessKey 调查的 SOAR 子步骤不可见,因此只显示 playbook 正在运行;Recon 阶段来自客户端实际回传日志;Process Analysis 是一次同步查询,完成后直接展示结果或错误。
Files
Files 页面用于浏览在线客户端本机文件系统。可以从左侧导航进入后选择客户端,也可以在 Clients 列表中点击某个客户端行的 Files 快捷入口直接打开。
特性:
- 客户端选择:按 Client ID 选择目标客户端;从 Clients 页面跳转时会自动选中对应客户端
- 默认根目录:Linux/macOS 默认从
/打开,Windows 默认从C:\打开 - 路径直达:可以在 Path 输入框中输入任意路径并打开
- 文件树可拖拽:与 Artifacts 使用同一套文件浏览交互,目录树宽度可调整并持久化
- 文本预览:文本文件可直接在线预览,二进制文件会显示不可预览提示
- 文件下载:普通文件和目录都可下载,目录会打包为
tar.gz - 文件上传:可上传单个文件到当前目标目录,单文件上限 100 MiB;目标文件已存在时会要求确认覆盖
远程文件操作
Files 页面读写的是客户端主机上的真实文件系统,上传和覆盖操作会直接修改远端文件。执行前请确认目标客户端与上传目录。
Artifacts
浏览服务端工作目录下的文件,典型使用场景是查看远程 Recon 和 AIR 产出的 Markdown 结果文档,以及上传/拉取到服务端的取证文件。特性:
- 文件树可拖拽:拖动树与预览之间的分隔条调整宽度(180–600 px),宽度持久化到 localStorage
- Markdown 渲染:
.md/.markdown自动渲染 - Markdown 悬浮目录:包含多个标题的 Markdown 报告会自动生成 TOC,点击目录项跳转到对应章节
- Dossier 编辑:
.md报告可直接在 Dossier 中打开,适合编辑应急报告正文、截图和结论 - 二进制识别:非文本文件显示"不支持预览"提示,不会报错
- 文件下载:任意文件可通过右上角下载按钮下载
- 目录打包下载:在文件树中右键目录并选择 Download,即可以
tar.gz流式下载整个目录,自动排除点号开头的文件和子目录 - 文件上传:可上传单个文件到当前目标目录,单文件上限 100 MiB;目标文件已存在时会要求确认覆盖
- 重命名与删除:文件树右键可重命名或删除文件/目录;删除非空目录会递归移除目录下所有内容
- 隐藏文件保护:
.env、.ssh等点号开头的文件既不列出也不允许直接访问,避免敏感信息泄露
Artifacts 删除操作
Artifacts 操作的是服务端工作目录下的真实文件。删除目录会递归删除其中内容,无法从 WebUI 撤销;执行前请确认目标路径。
Dossier
Dossier 是独立的 Markdown 报告编辑器,有两种打开方式:
- 从左侧导航点击 Dossier,打开
webui.dossierDir/report.md作为默认报告 - 在 Artifacts 中选中
.md报告后,点击 Dossier 按钮编辑该报告
Dossier 未部署、路径配置错误或默认 report.md 缺失时,WebUI 会显示错误提示,但不影响其他功能。
详细部署、配置、语法和编辑流程见 Dossier 文档。
常见问题
- 点击 Dossier 后提示不可用:通常是 Dossier 编辑器文件未部署,或
webui.dossierDir指向了错误目录。 - 点击 Dossier 后提示默认报告不可用:确认
webui.dossierDir/report.md存在。webui.dossierDir可以使用绝对路径,也可以放在siren_server工作目录外。 - Artifacts 中没有 Dossier 按钮:只有
.md报告支持在 Dossier 中编辑。 - 旧 HTML 报告无法直接预览:Artifacts 不再内置 HTML 预览,可下载后查看;新的应急报告建议使用 Markdown。
配置
在 server_config.yaml 的 webui 段落配置:
webui:
enabled: true # 是否启用 WebUI
listen: 0.0.0.0 # 共享 HTTP 监听地址
port: 8080 # 监听端口(与 MCP 共享)
userDBPath: /opt/siren/data/users.db # 可选:用户数据库绝对路径
dossierDir: /opt/siren/dossier # 可选:Dossier 编辑器文件目录
mcp:
enabled: true # 是否启用 MCP 服务WebUI 与 MCP 共用监听地址和端口,但启停开关相互独立。详见 配置文件。
生产部署建议
公网暴露场景
WebUI 本身使用 HTTP(非 TLS),Session Cookie 虽然是 HttpOnly,但在公网环境下明文传输仍有风险。强烈建议:
- 将
webui.listen改为绑定127.0.0.1(默认0.0.0.0),前置 Nginx / Caddy 做 TLS 终止和反向代理 - 或至少通过 iptables / 安全组限制访问 IP
- 部署前必须已创建至少一个用户账号(否则 WebUI 零鉴权)