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 辅助排查会话

Investigations

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

Files

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

Artifacts

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

Dossier

编辑 Markdown 应急报告

Projects

Project 是应急响应工作区,用于把客户端、Artifacts 目录和操作目标放到同一个上下文中。每个 Project 创建时会固定一个服务端目录,例如 /opt/siren/my-project;之后重命名 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。客户端下一次从该 IP 连接后会自动归属到当前 Project。服务端 REPL 部署不带 Project 上下文,仍保持全局行为。

Clients

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

  • 编辑备注。备注绑定到客户端稳定身份,客户端重连后会自动恢复。
  • 分配 Project。Global 视图中可以把客户端分配到某个 Project,或移回未归属状态。
  • 打开快捷入口。从客户端行可直接进入 Files 或 Process Analysis。
  • 执行 SOAR 操作,包括 allow 放行、单机部署、批量部署。
  • 清理客户端。清理操作会弹出 Clean & Terminate 二次确认。

批量部署规则

批量部署支持同一 UID 下的 2-20 台 ECS。Batch 模式每行输入 instanceIdinstanceId,publicIpinstanceId,publicIp,note;只填写备注时可写成 instanceId,,note。默认并发 3 台,单台失败不会中断其他目标。

Shells

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

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

Agentic IR

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

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

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

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

恢复范围

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

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

Investigations

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

  • AccessKey,输入 Alibaba Cloud 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
  • 上传单个文件到当前目标目录,单文件上限 100 MiB。目标文件已存在时会要求确认覆盖。

远程文件操作

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

Artifacts

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

支持的操作:

  • 预览文本文件。.md.markdown 会渲染为 Markdown;包含多个标题时会显示目录。
  • 下载文件或目录。目录会打包为 tar.gz,并自动排除点号开头的文件和子目录。
  • 上传单个文件到当前目标目录,单文件上限 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