- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
5.9 KiB
5.9 KiB
安全审计与堡垒机设计说明
更新:2026-07-05 范围:操作审计、登录日志、SSH/RDP/Pod/kubectl 会话、录像回放、命令审计、会话策略、审批联动。 目标:把 AIOps 的终端、RDP、审计、策略和审批统一成“可用堡垒机 → 企业堡垒机”的工程体系。// Logan.Li
定位
安全审计与堡垒机模块解决三个问题:
- 谁在什么时间访问了什么资产。
- 会话里做了什么操作,是否可回放、可追责。
- 高风险操作是否被策略限制、确认或审批。
当前 AIOps 已具备 WebSSH、RDP、Pod exec、kubectl 终端、操作审计、会话录像、水印、剪贴板/文件策略等能力。后续要做的是把这些能力从“分散功能”统一成“协议无关的会话安全模型”。
能力矩阵
| 能力 | 当前状态 | 说明 |
|---|---|---|
| 操作审计 | 已完成 | 记录用户、模块、动作、资源、请求/响应、状态 |
| 登录日志 | 已完成 | 记录登录用户、IP、User-Agent、结果 |
| SSH 会话审计 | 已完成 | sys_terminal_sessions + asciicast 回放 |
| SSH 命令审计 | 已完成 | sys_session_commands 记录命令和输出大小 |
| RDP 会话审计 | 已完成 | sys_rdp_sessions + 图形帧录像 |
| RDP 操作摘要 | 已完成 | 复制、粘贴、输入、上传、下载等写入命令审计 |
| RDP 实时审计 | 已完成 | /ws/rdp-audit/:sessionId 只读观看 |
| 会话水印 | 已完成 | RDP/SSH 显示当前用户水印 |
| 会话策略 | 已完成 | 录像、剪贴板、上传、下载、审批预留 |
| Pod/kubectl 审计 | 部分完成 | 终端可用,审计模型待独立统一 |
| 审批联动 | 待增强 | 高危命令、生产资产、AI 操作需接入审批 |
主要代码落点
| 层 | 文件 / 目录 | 说明 |
|---|---|---|
| 后端控制器 | backend/controller/audit.go |
操作审计查询、导出、统计 |
| 后端控制器 | backend/controller/login_log.go |
登录日志 |
| 后端控制器 | backend/controller/terminal_session.go |
SSH 会话列表、详情、回放、终止 |
| 后端控制器 | backend/controller/session_command.go |
会话命令查询 |
| 后端控制器 | backend/controller/rdp_session.go |
RDP 会话列表、录像、终止 |
| 后端控制器 | backend/controller/audit_setting.go |
审计与会话安全策略 |
| 后端控制器 | backend/controller/audit_hub.go |
SSH 实时审计广播 |
| 后端模型 | backend/model/audit.go |
操作审计表 |
| 后端模型 | backend/model/terminal_session.go |
SSH 会话表 |
| 后端模型 | backend/model/rdp_session.go |
RDP 会话表 |
| 后端模型 | backend/model/session_command.go |
命令/操作摘要表 |
| 前端 API | frontend/src/api/audit/ |
审计、终端、RDP API |
| 前端设置 | frontend/src/api/system/audit-settings.ts |
会话策略 API |
| 前端组件 | frontend/src/components/system/LiveMonitorDialog.tsx |
SSH 实时审计 |
| 前端组件 | frontend/src/components/system/ReplayDialog.tsx |
SSH 回放 |
| 前端组件 | frontend/src/components/system/RdpAuditViewer.tsx |
RDP 实时/历史查看 |
统一会话模型
建议逐步抽象出统一会话视图:
Session
├── id
├── type: ssh | rdp | pod | kubectl | workspace | ai-agent
├── user_id / username
├── target_type: server | pod | cluster | workspace
├── target_id / target_name / target_addr
├── status: active | closed | failed | killed
├── start_time / end_time / duration
├── record_type: asciicast | rdp_bitmap | none
├── record_size
└── risk_level
当前 SSH 和 RDP 分表存储是合理的,因为录像格式不同;但审计页应提供统一查询聚合视图。// Logan.Li
会话策略
策略存储:sys_audit_settings
| 策略 | 影响 |
|---|---|
session_watermark_enabled |
RDP/SSH 显示用户水印 |
session_record_enabled |
是否保存会话录像/录制 |
clipboard_enabled |
是否允许 RDP 剪贴板 |
file_upload_enabled |
是否允许 RDP 上传 |
file_download_enabled |
是否允许 RDP 下载 |
command_policy_enabled |
命令策略开关,后续用于 SSH/kubectl/AI 工具 |
approval_required |
高危访问或操作是否需要审批 |
后端必须作为最终边界执行策略,前端只负责按钮禁用和提示。
审批联动建议
| 场景 | 建议 |
|---|---|
| 访问生产 RDP/SSH | 可选审批或双人授权 |
| RDP 文件下载 | 生产资产可触发审批 |
| kubectl delete/scale/restart | 强制二次确认或审批 |
| Agent CLI 高危工具 | 计划确认 + 操作确认 + 审批 |
| 批量远程执行 | 必须审批 |
| 非工作时间变更 | 强制审批 |
与现有专题文档关系
| 专题 | 文档 |
|---|---|
| 字符终端实现 | docs/terminal |
| RDP 实现 | docs/rdp |
| AI Agent 安全 | docs/ai-agent |
| 资产和凭证 | docs/asset-credential |
演进路线
| 阶段 | 目标 | 关键任务 |
|---|---|---|
| 第一阶段 | 可用堡垒机 | SSH/RDP 可访问、可回放、可审计、可禁用剪贴板和文件 |
| 第二阶段 | 企业堡垒机 | 统一会话中心、策略按用户/角色/资产/协议生效、高危审批 |
| 第三阶段 | 智能堡垒机 | AI Agent 工具调用进入统一审计,成功流程沉淀为 Runbook |
验收清单
- 操作审计能按用户、模块、动作、时间筛选。
- SSH 会话能实时查看和历史回放。
- RDP 会话能实时查看和历史回放。
- RDP 剪贴板、上传、下载策略关闭后前后端都生效。
- SSH/RDP 命令或操作能通过会话 ID 关联到回放。
- 登录日志能区分成功、失败、来源 IP。
- 高危策略开启后,生产资产操作不会绕过后端拦截。