SIREN

Web 控制台

通过浏览器管理 SIREN 远程模式

仅远程模式支持

Web 控制台是 SIREN Server 的浏览器入口。它覆盖日常远程操作:Project 工作区、客户端列表、浏览器 Shell、Agentic IR、调查任务、文件管理、Artifacts 和 Dossier。需要在控制主机终端里直接操作时,可以改用 服务端 REPL

启动与访问

启用 webui.enabled 时,Web 控制台会随 siren_server 启动。默认监听 0.0.0.0:8080

控制主机
./siren_server

启动后访问:

http://<SIREN Server IP>:8080

端口统一

Web 控制台和 MCP 服务 共用 webui.listen / webui.port。浏览器访问根路径,MCP 客户端访问 /mcp。两者的启停开关相互独立,分别是 webui.enabledmcp.enabled

账号鉴权

Web 控制台使用 Session Cookie 鉴权。账号密码存储在 SQLite 数据库中,密码会先做 bcrypt 哈希,默认数据库路径是 data/users.db

安全注意

用户数据库不存在,或数据库里没有任何用户时,Web 控制台会关闭鉴权并允许匿名访问。部署到公网前必须先创建至少一个用户。

管理用户账号

创建账号

控制主机
./siren_server user add <username>

执行后按提示输入两次密码。

列出账号

控制主机
./siren_server user list

删除账号

控制主机
./siren_server user delete <username>

数据库路径一致性

data/users.db 默认相对当前工作目录解析。如果 siren_server user addsiren_server 在不同目录执行,可能会读写两份数据库。建议在 server_config.yaml 中配置绝对路径:

webui:
  userDBPath: /opt/siren/data/users.db

或者在 systemd unit 中设置 WorkingDirectory

功能页面

Projects

按应急响应项目隔离客户端、Artifacts 和调查上下文

Clients

查看在线客户端,编辑备注,执行 SOAR 放行、部署和清理

Shells

在浏览器中打开多标签交互式终端

Agentic IR

启动 Claude / Codex / Qoder 辅助排查会话

Investigations

执行 AccessKey 调查、Recon 和进程分析

Files

浏览、预览、下载和上传客户端文件

Artifacts

管理服务端取证文件和报告

Dossier

编辑 Markdown 应急报告

Projects

Project 是应急响应工作区,用于把客户端、Artifacts 目录和操作目标放到同一个上下文中。每个 Project 创建时会固定一个服务端目录,例如 /opt/siren/my-project

Projects 页面支持:

  • 创建 Project,并可指定目录名。目录名只能是 basename,最终目录必须位于 webui.projectsBaseDir 下。
  • 复制 Project 目录路径,便于在控制主机上查看或归档。
  • 重命名 Project。重命名只修改显示名,不移动目录。
  • 删除 Project。删除只移除元数据并解除客户端归属,目录和文件会保留。
  • 在 Global 视图和 Project 视图之间切换。Project 视图只显示当前 Project 的客户端和取证目录。

客户端最多归属到一个 Project。未归属客户端只在 Global 视图中出现;进入 Project 视图后,Clients、Shells、Agentic IR、Files 和 Investigations 都只允许选择当前 Project 的客户端。

部署归属

在 Project 视图下通过 Web 控制台单机或批量部署 SIREN 客户端时,唯一匹配到本次 Allow IP 的新客户端会自动归属到当前 Project。批量部署填写的 Note 只会写入尚无备注的客户端,已有备注会保留并显示 warning。服务端 REPL 部署不带 Project 上下文,仍保持全局行为。

Clients

Clients 页面对应服务端 REPL 的 lsnoteallowdeployclean。每行展示一个在线客户端,支持:

  • 按 ID、系统、地址、备注或 Project 筛选,并按主要字段排序。
  • 多选客户端后批量分配 Project 或执行清理。
  • 编辑备注。备注绑定到客户端稳定身份,客户端重连后会自动恢复。
  • 分配 Project。Global 视图中可以把客户端分配到某个 Project,或移回未归属状态。
  • 打开快捷入口。从客户端行可直接进入 Files 或 Process Analysis。
  • 执行 SOAR 操作,包括 allow 放行、单机部署、批量部署。
  • 查看近期部署任务。页面刷新后仍可恢复当前进度和最近结果,进行中的任务每 2 秒更新一次。
  • 清理客户端。单个或批量清理都会要求输入确认短语后再执行 Clean & Terminate

批量部署规则

点击 Batch deploy 会打开独立的批量部署窗口,支持同一 UID 下的 2-20 台 ECS。每行输入 instanceIdinstanceId,publicIpinstanceId,publicIp,note;只填写备注时可写成 instanceId,,note。默认并发 3 台,单台失败不会中断其他目标。提交后窗口会关闭,可在近期部署列表继续查看进度。success 表示客户端已经连接,并显示实际 Client ID;playbook 完成后最多等待 30 秒,未连接的目标记为 timed_out。安装或启动命令失败时会立即显示其输出,不再继续等待客户端上线。

部署结果分为 successpartialfailed。只有所有目标均已连接且没有 warning 时才会清空输入;部分成功、失败或超时会保留原输入,便于核对和修正。近期列表最多显示 20 次部署,可以完全收起;终态记录最长保留 30 分钟。这些记录只存在于当前服务端进程,服务端重启后不会恢复。

需要手工确认客户端

多个进行中的部署目标共享同一个出口 IP 时,SIREN 会停止自动关联,不会把本次 Project 或 Note 写入无法确认的客户端。部署会显示 manual_required,请在 Clients 列表中核对主机后手工设置;页面不会提供自动重试,以免重复部署。

Shells

Shells 页面提供浏览器内的交互式终端,每个客户端可以打开多个终端标签。切换到其他页面时,已打开的 Shell 会话仍会保持运行;回到 Shells 页后可以继续输入。

Project 视图下,Shell 只能连接当前 Project 的客户端。切换 Project 或切回 Global 时,Web 控制台会关闭不属于新视图的活动 Shell,避免继续操作错误项目中的主机。

Agentic IR

Agentic IR 页面在浏览器内嵌终端中运行 Claude Code、Codex 或 Qoder,用于完成 Agentic 应急响应。页面支持选择 Provider、新建会话,或恢复当前视图工作目录对应的历史会话。

新建会话可选以下入口模式:

  • Manual,不带 SIREN 上下文的裸 CLI 终端,适合临时通用操作。
  • Custom,选择客户端并输入应急响应指令。
  • Event,选择客户端并输入阿里云 UID 和云安全中心告警 ID,由服务端拉取告警详情。

也可以切换到 Resume 模式,搜索并选择当前视图工作目录对应的历史会话,用原 session ID 在终端中继续该会话。

左侧的 Running 会显示任务、客户端、Provider、状态和启动时间;History 会显示首个任务、最近一条可见对话、分支和更新时间,便于在恢复前确认会话内容。

恢复范围

Resume 只读取当前视图工作目录对应的 Provider history,不会跨 Project 列出其他目录的历史会话,也不会向浏览器暴露本机 JSONL 文件路径。

会话托管在服务端。刷新浏览器或切换页面后,可以重新接入并回放此前输出,进程不会因为页面离开而中断。除 Manual 外,会话会使用 SIREN MCP,因此需要启用 MCP 服务。Project 视图下的工作目录、历史恢复和 MCP 作用域规则见 Agentic 应急响应

Investigations

Investigations 页面汇总需要等待结果的调查工具,目前包含 AccessKey 调查、客户端 Recon 和进程分析。

  • AccessKey,输入阿里云 UID、AccessKey ID 和可选 Region,生成 Markdown 调查报告。Region 留空时默认 cn-hangzhou。AccessKey 调查不绑定客户端,报告写入 Global Artifacts。
  • Recon,选择在线客户端并下发信息收集命令。页面展示服务端从客户端日志中解析出的阶段,例如 Recon.BasicRecon.UserRecon.ProcessSave report to Artifacts
  • Process Analysis,选择 Linux 客户端后,按 PID、监听端口或进程名查询进程详情。按名称匹配到多个进程时,页面会列出候选项,点击候选 PID 后继续分析。
  • 报告入口,调查结束后会显示 Open Artifacts 按钮。Recon 报告跟随客户端 Project 归属保存;已归属客户端写入 Project 目录,未归属客户端写入 Global Artifacts。

进度展示原则

Web 控制台只展示服务端能真实观测到的阶段。AccessKey 调查只显示 playbook 运行状态;Recon 阶段来自客户端实际回传日志;Process Analysis 是一次同步查询,完成后直接展示结果或错误。

Files

Files 页面用于浏览在线客户端的本机文件系统。可以从左侧导航进入后选择客户端,也可以在 Clients 列表中点击某个客户端行的 Files 快捷入口。Project 视图下只能选择当前 Project 的客户端。

常用操作:

  • 选择客户端,或从 Clients 页面跳转后自动选中对应客户端。
  • 打开路径。Linux/macOS 默认从 / 打开,Windows 默认从 C:\ 打开,也可以在 Path 输入框中输入指定路径。
  • 预览文本文件。二进制文件会显示不可预览提示。
  • 下载文件或目录。目录会打包为 tar.gz
  • 点击 Upload 选择一个或多个文件,或把多个文件拖到页面任意位置,上传到顶部 Target 显示的当前目标目录。文件会按顺序上传,单文件上限 100 MiB;目标文件已存在时会逐个要求覆盖或跳过。拖拽不支持上传目录。

远程文件操作

Files 页面读写的是客户端主机上的真实文件系统,上传和覆盖操作会直接修改远端文件。执行前请确认目标客户端与上传目录。

Artifacts

Artifacts 页面管理服务端取证目录。Global 视图使用 siren_server 工作目录;Project 视图使用当前 Project 创建时固定的目录。常见场景是查看 Recon、AIR 和 AccessKey 调查生成的 Markdown 报告,或管理从客户端拉取到服务端的取证文件。

支持的操作:

  • 预览文本文件。.md.markdown 会渲染为 Markdown;包含多个标题时会显示目录。
  • 预览 PNG、JPEG、GIF 和 WebP 图片。图片默认适应预览区,也可以切换到 100% 或在 25%-400% 范围内缩放查看细节。
  • 下载文件或目录。目录会打包为 tar.gz,并自动排除点号开头的文件和子目录。
  • 点击 Upload 选择一个或多个文件,或把多个文件拖到页面任意位置,上传到顶部 Target 显示的当前目标目录。文件会按顺序上传,单文件上限 100 MiB;目标文件已存在时会逐个要求覆盖或跳过。拖拽不支持上传目录。
  • 新建目录、重命名和删除文件或目录。删除非空目录会递归删除其中内容。
  • .md 报告进入 Dossier 编辑。.markdown 可以预览,但不会显示 Dossier 编辑按钮。
  • 保护隐藏路径。.env.ssh 等点号开头的文件或目录不会列出,也不允许直接访问。

Artifacts 删除操作

Artifacts 操作的是服务端真实文件。删除目录会递归删除其中内容,无法从 Web 控制台撤销;执行前请确认当前视图和目标路径。

Dossier

Dossier 是独立的 Markdown 报告编辑器,有两种打开方式:

  • 从左侧导航点击 Dossier,打开 webui.dossierDir/report.md。即使当前处于 Project 视图,也不会自动切换到 Project 目录下的 report.md
  • 在 Artifacts 中选中 .md 报告后,点击 Dossier 按钮编辑该报告。如果当前是 Project 视图,报告文件和粘贴资源会保留在 Project 目录内。

Dossier 未部署、路径配置错误或默认 report.md 缺失时,Web 控制台会显示错误提示,但不影响其他功能。

详细部署、配置、语法和编辑流程见 Dossier 文档

常见问题

  • 点击 Dossier 后提示不可用:通常是 Dossier 编辑器文件未部署,或 webui.dossierDir 指向了错误目录。
  • 点击 Dossier 后提示默认报告不可用:确认 webui.dossierDir/report.md 存在。webui.dossierDir 可以使用绝对路径,也可以放在 siren_server 工作目录外。
  • Artifacts 中没有 Dossier 按钮:只有 .md 报告支持在 Dossier 中编辑。
  • 旧 HTML 报告无法直接预览:Artifacts 不再内置 HTML 预览,可下载后查看;新的应急报告建议使用 Markdown。

配置

server_config.yamlwebui 段落配置:

server_config.yaml
webui:
  enabled: true                         # 是否启用 Web 控制台
  listen: 0.0.0.0                       # 共享 HTTP 监听地址
  port: 8080                            # 监听端口(与 MCP 共享)
  userDBPath: /opt/siren/data/users.db  # 可选:用户数据库绝对路径
  dossierDir: /opt/siren/dossier        # 可选:Dossier 编辑器文件目录
  projectsBaseDir: /opt/siren/projects  # 可选:Project 目录创建基准路径

mcp:
  enabled: true                         # 是否启用 MCP 服务

Web 控制台与 MCP 共用监听地址和端口,但启停开关相互独立。完整配置项见 配置文件

生产部署建议

公网暴露场景

Web 控制台本身使用 HTTP。Session Cookie 虽然是 HttpOnlySameSite=Lax,但公网明文传输仍有风险。建议:

  • webui.listen 改为绑定 127.0.0.1(默认 0.0.0.0),前置 Nginx / Caddy 做 TLS 终止和反向代理
  • 或至少通过 iptables / 安全组限制访问 IP
  • 部署前必须创建至少一个用户账号,否则 Web 控制台不会启用鉴权

相关内容

On this page