PRD: OpenClaw 安全合规检查与通知系统
版本: v1.0
日期: 2026-07-20
状态: [草稿]
作者: Simon
需求编号: REQ-集成-001
关联文档:
- 原型:
01-产品文档/08-集成生态/原型-REQ-集成-001-OpenClaw合规检查-v1.0.html
- 技术:
02-技术文档/实现配置/技术方案-REQ-集成-001-OpenClaw合规检查-v1.0.md
- 测试:
03-测试文档/03-功能测试用例/TC-REQ-集成-001-OpenClaw合规检查.md
1. 问题陈述 (Problem Statement)
背景
在重大安全活动期间(如国家网络安全周、重大会议保障期),公司需要对终端进行合规审计。
💡 本期目标:以 OpenClaw 检测为 一期试点,验证安全策略检查与通知框架的可行性。
扩展性设计:本系统设计为 通用安全策略检查平台,未来可低成本扩展其他策略和推送渠道。
问题描述
- 现状:目前依赖手工导出联软数据或通过火绒终端管理查看,缺乏自动化的定期检查和通知机制
- 痛点:
- 无法及时发现违规软件安装
- 依赖人工通知,效率低、易遗漏
- 无法形成定期的合规审计报告
影响
- 安全风险:未经授权的远程软件可能成为攻击入口
- 合规风险:无法满足重大活动期间的安全审计要求
- 业务影响:IT 运维人员需要投入大量人工排查
2. 目标 (Goals)
| # |
目标 |
成功衡量标准 |
| G1 |
一期试点:自动检测 OpenClaw 安装 |
系统可自动发现所有已安装 OpenClaw 的终端,覆盖率 ≥ 95% |
| G2 |
及时通知当事人 |
检测到违规软件后,24 小时内通过企微发送通知给终端用户 |
| G3 |
支持定时+手动执行 |
支持每日定时执行 + 管理员手动触发两种方式 |
| G4 |
合规审计留痕 |
支持导出 Excel 审计报告,保留检测记录至少 6 个月 |
| G5 |
活动期间管控 |
支持设置活动期间,自动开启检查 |
| G6 |
框架可扩展 |
新增其他安全策略和推送渠道的成本 ≤ 1人天 |
3. 非目标 (Non-Goals)
| # |
非目标 |
原因 |
| N1 |
自动封禁/断网 |
仅做通知提醒,不做自动阻断,避免影响业务连续性 |
| N2 |
支持其他软件检查 |
⚠️ 已调整为扩展性设计,详见下方框架说明 |
| N3 |
实时监控 |
采用定时检查(非实时推送),5 分钟级延迟可接受 |
| N4 |
移动端管理 |
本期仅支持 PC Web 端管理 |
| N5 |
火绒+联软自动同步 |
联软数据本期采用手动导入 Excel,不做自动 API 对接 |
3.1 扩展性框架设计(重要)
📐 架构理念:将"检测策略"与"推送渠道"解耦,实现可扩展的安全合规平台
3.1.1 策略类型(Strategy)
| 策略ID |
策略名称 |
检测规则 |
数据源 |
状态 |
| openclaw_remote |
OpenClaw/向日葵远程软件 |
软件名包含 OpenClaw/向日葵/sunflower |
火绒API |
🔵 一期 |
| unknown_usb |
未知USB设备 |
未登记的USB设备接入 |
联软/火绒 |
⚪ 二期 |
| illegal_proxy |
非法代理软件 |
软件名包含 proxy/vpn |
火绒API |
⚪ 二期 |
| unverified_software |
未授权软件 |
不在白名单内的软件 |
火绒API |
⚪ 二期 |
3.1.2 推送渠道(Channel)
| 渠道ID |
渠道名称 |
适用场景 |
状态 |
| wecom_app |
企微应用消息 |
终端用户通知 |
🔵 一期 |
| wecom_group |
企微群通知 |
部门汇总、管理员 |
🔵 一期 |
| email |
邮件通知 |
正式留痕、邮件通知 |
⚪ 二期 |
| sms |
短信通知 |
紧急告警、无企微用户 |
⚪ 二期 |
| dingtalk |
钉钉通知 |
跨平台通知 |
⚪ 二期 |
3.1.3 策略-渠道映射
3.1.4 扩展成本
| 扩展项 |
工作量预估 |
说明 |
| 新增检测策略 |
0.5人天 |
仅需配置检测规则和数据源 |
| 新增推送渠道 |
1人天 |
需开发渠道适配器 |
| 新策略+新渠道 |
1人天 |
配置映射关系即可 |
4. 用户故事 (User Stories)
角色定义
- IT 管理员:负责配置检查策略、查看检测结果、触发手动检查
- 终端用户:收到通知的被检查对象
- 部门负责人:(可选)收到本部门汇总通知
用户故事列表
| # |
角色 |
用户故事 |
优先级 |
| US1 |
IT 管理员 |
我希望系统能自动从火绒 API 获取终端软件列表,以便及时发现 OpenClaw 安装 |
P0 |
| US2 |
IT 管理员 |
我希望能够导入联软导出的用户-终端关联 Excel,以便知道哪台设备属于哪个用户 |
P0 |
| US3 |
IT 管理员 |
我希望系统能自动匹配"终端→用户",输出"谁在哪台设备安装了 OpenClaw",以便精准确认责任人 |
P0 |
| US4 |
IT 管理员 |
我希望能够设置定时任务(如每天 8:00 自动检查),以便在活动期间自动执行 |
P0 |
| US5 |
IT 管理员 |
我希望能够手动点击"立即检查"按钮,以便随时执行检查 |
P0 |
| US6 |
IT 管理员 |
我希望能够编辑通知模板(包含变量),以便自定义通知内容 |
P1 |
| US7 |
IT 管理员 |
我希望能够设置"是否通知部门负责人"开关,以便灵活配置通知范围 |
P1 |
| US8 |
IT 管理员 |
我希望能够导出 Excel 报告,以便留存审计记录 |
P0 |
| US9 |
终端用户 |
我希望收到企微应用消息通知,告诉我哪台设备安装了违规软件,以便及时卸载 |
P0 |
| US10 |
部门负责人 |
我希望收到本部门的汇总通知(可选),以便了解本部门合规情况 |
P1 |
| US11 |
IT 管理员 |
我希望能够新增其他安全策略(如未知USB、非法代理),以便扩展检测范围 |
P0 |
| US12 |
IT 管理员 |
我希望能够配置不同策略使用不同推送渠道(如邮件、短信),以便灵活通知 |
P1 |
5. 需求规格 (Requirements)
5.1 功能需求
📌 需求说明:一期以 OpenClaw 为试点,但架构设计需支持策略和渠道的扩展。
T0: 策略与渠道管理(框架层)
| 需求ID |
描述 |
优先级 |
验收标准 |
| REQ-001-00 |
策略配置:支持创建/编辑/启停安全策略 |
P0 |
可配置策略名称、检测规则、数据源、推送渠道 |
| REQ-001-00a |
预置策略:一期预置"OpenClaw远程软件"检测策略 |
P0 |
内置关键词规则(OpenClaw/向日葵/sunflower) |
| REQ-001-00b |
渠道配置:支持配置推送渠道参数 |
P0 |
企微渠道:应用ID/Secret;邮件渠道:SMTP配置 |
| REQ-001-00c |
渠道适配器:企微应用消息发送 |
P0 |
复用现有企微消息能力 |
| REQ-001-00d |
渠道适配器:(扩展)邮件发送 |
P2 |
可延后至二期 |
| REQ-001-00e |
渠道适配器:(扩展)短信发送 |
P2 |
可延后至二期 |
T1: 数据采集层
⚠️ 注意:火绒 API 集成功能已存在于系统中(app/integrations/huorong),无需重复开发。
- 现有 API:
GET /api/admin/integrations/huorong/terminals - 获取终端列表
- 现有 API:
GET /api/admin/integrations/huorong/terminals/{client_id} - 获取终端详情(含软件列表)
- 本期仅需确认现有 API 满足 OpenClaw 检测需求(获取终端软件列表)。
| 需求ID |
描述 |
优先级 |
验收标准 |
| REQ-001-01 |
✅ 已存在:火绒 API 集成(/api/clnts/_list 获取终端列表) |
- |
复用现有功能 |
| REQ-001-02 |
✅ 已存在:火绒 API 集成(/api/clnts/_info2 获取软件列表) |
- |
复用现有功能,确认支持 OpenClaw 检测 |
| REQ-001-03 |
联软 Excel 导入:支持上传 .xlsx/.xls 文件 |
P0 |
能解析联软导出的 Excel,提取用户-终端关联字段 |
| REQ-001-04 |
联软字段映射:自动识别 用户名、设备名称、MAC地址、设备IP、部门名称 |
P0 |
上传文件后自动匹配字段,无需手动配置 |
| REQ-001-05 |
联软数据存储:将导入的关联数据存入数据库 |
P0 |
导入后数据持久化,支持后续匹配查询 |
T2: 数据融合引擎
| 需求ID |
描述 |
优先级 |
验收标准 |
| REQ-001-06 |
IP 地址匹配:优先通过 IP 完全匹配关联终端和用户 |
P0 |
火绒终端 IP 与联软数据完全一致时,成功匹配 |
| REQ-001-07 |
主机名匹配:IP 未匹配时,通过主机名包含匹配 |
P0 |
火绒主机名包含联软设备名称时,成功匹配 |
| REQ-001-08 |
MAC 地址匹配:前两者未匹配时,通过 MAC 地址匹配 |
P0 |
火绒 MAC 与联软 MAC 一致时,成功匹配 |
| REQ-001-09 |
未匹配记录标记:无法关联到用户的终端需标记为"未匹配" |
P0 |
输出结果中明确标注哪些终端无法确定责任人 |
| REQ-001-10 |
OpenClaw 命中过滤:仅输出安装了 OpenClaw 的终端 |
P0 |
匹配关键词:OpenClaw, 向日葵, sunflower(不区分大小写) |
T3: 策略规则与命中管理
| 需求ID |
描述 |
优先级 |
验收标准 |
| REQ-001-11 |
白名单规则:支持配置排除的用户/终端 |
P1 |
配置白名单后,命中用户不在通知范围内 |
| REQ-001-12 |
部门汇总:支持按部门聚合命中结果 |
P1 |
统计每个部门的违规终端数量 |
| REQ-001-12a |
命中状态管理:支持手动修改命中记录状态 |
P0 |
状态:待处理→已通知→已解决/误报 |
| REQ-001-12b |
自动状态更新:再次检测时自动判断状态变化 |
P0 |
历史命中用户再次检测未命中,自动标记"已解决" |
| REQ-001-12c |
状态变更记录:记录状态变更时间和操作人 |
P1 |
可查看每条记录的状态变更历史 |
T4: 通知模板管理
| 需求ID |
描述 |
优先级 |
验收标准 |
| REQ-001-13 |
模板变量:支持变量替换({username}, {device}, {dept}, {software}, {detect_time}) |
P0 |
通知内容中变量被正确替换 |
| REQ-001-14 |
默认模板:内置默认通知模板 |
P0 |
未配置模板时使用默认模板发送 |
| REQ-001-15 |
模板编辑:支持富文本编辑通知模板 |
P1 |
可编辑标题和正文内容 |
| REQ-001-16 |
企微消息发送:通过企微应用消息接口发送通知 |
P0 |
成功发送至终端用户企微 |
T5: 调度与执行
| 需求ID |
描述 |
优先级 |
验收标准 |
| REQ-001-17 |
定时任务:支持配置 cron 表达式执行检查 |
P0 |
每天 8:00 自动执行检查任务 |
| REQ-001-18 |
手动触发:提供"立即检查"按钮 |
P0 |
点击后立即执行检查流程 |
| REQ-001-19 |
活动期间开关:支持设置活动起止时间 |
P0 |
活动期间自动开启检查,非活动期间可手动开启 |
| REQ-001-20 |
执行日志:记录每次执行的起止时间、命中数量、发送结果 |
P0 |
可查看历史执行记录 |
| REQ-001-21 |
Excel 导出:支持导出检测结果为 Excel |
P0 |
导出字段:用户名、用户全名、部门、设备名称、IP、MAC、软件名称、安装日期 |
5.2 边缘情况处理
| 场景 |
处理方式 |
| 火绒 API 调用失败 |
记录错误日志,发送告警给 IT 管理员,继续使用上次导入的联软数据 |
| 联软 Excel 未导入 |
仅使用火绒数据,未匹配用户的终端标记为"用户未知" |
| 用户无企微账户 |
跳过发送,标记为"发送失败",记录日志 |
| 重复检测 |
同一用户同一天多次检测,仅发送首次通知(去重) |
| 空结果(无违规) |
发送"本次检查无违规"的汇总通知给管理员 |
6. 成功指标 (Success Metrics)
6.1 领先指标(Leading Indicators)
| 指标 |
定义 |
目标 |
测量方式 |
| 检测覆盖率 |
成功关联到用户的终端数 / 火绒总终端数 |
≥ 85% |
数据库统计 |
| 通知成功率 |
成功发送通知数 / 需通知总数 |
≥ 95% |
企微 API 返回 |
| 执行完成率 |
定时任务成功执行次数 / 计划执行次数 |
≥ 99% |
调度日志 |
6.2 滞后指标(Lagging Indicators)
| 指标 |
定义 |
目标 |
测量方式 |
| 闭环率 |
当事人确认处理(卸载)的比例 |
≥ 80% |
用户反馈或二次检测 |
| 投诉率 |
通知后用户投诉误报的比例 |
< 5% |
反馈记录 |
| 合规达标率 |
活动期间最后一天违规终端清理比例 |
100% |
最终检测报告 |
7. 开放问题 (Open Questions)
| # |
问题 |
负责人 |
状态 |
| Q1 |
联软 Excel 导入频率?建议每日导入一次还是每次检查前导入? |
产品 |
待确认 |
| Q2 |
部门负责人通知是否需要汇总(多条合并为1条)? |
产品 |
待确认 |
| Q3 |
活动期间结束后,是否需要自动关闭定时任务? |
产品 |
待确认 |
7.1 任务拆分说明(重要)
⚠️ 系统现有火绒 API 集成,无需重复开发
| 任务 |
说明 |
状态 |
| T0: 策略与渠道管理 |
需开发:策略配置、渠道适配器框架 |
🔲 待开发 |
| T1a: 火绒API集成 |
现有功能已支持(/api/admin/integrations/huorong/terminals) |
✅ 已存在 |
| T1b: 联软Excel导入 |
需开发:从联软导出Excel导入用户-终端关联 |
🔲 待开发 |
| T2: 数据融合引擎 |
需开发:IP/主机名/MAC三级匹配 |
🔲 待开发 |
| T3: 策略规则引擎 |
需开发:白名单、命中过滤 |
🔲 待开发 |
| T4: 通知模板管理 |
需开发:模板编辑、企微消息发送 |
🔲 待开发 |
| T5: 调度与执行 |
需开发:定时任务、手动触发、活动开关 |
🔲 待开发 |
实际开发任务:T0 + T1b + T2 + T3 + T4 + T5(共6个任务)
8. 时间计划 (Timeline)
阶段划分
⚠️ 注:T1a(火绒API)已存在,无需开发。
| 阶段 |
内容 |
预估工期 |
| Phase 0 |
T0(策略与渠道框架)+ T1b(联软导入) |
2 天 |
| Phase 1 |
T2(融合引擎)+ T3(策略规则) |
2 天 |
| Phase 2 |
T4(通知模板)+ T5(调度执行+导出) |
2 天 |
| Phase 3 |
联调测试 + 验收 |
2 天 |
| 合计 |
实际开发 |
8 天 |
里程碑
| 日期 |
里程碑 |
| 2026-07-25 |
Phase 1-2 完成,进入联调 |
| 2026-07-28 |
Phase 3-4 完成,进入测试 |
| 2026-07-30 |
UAT 通过,具备上线条件 |
9. 风险与依赖 (Risks & Dependencies)
| 风险/依赖 |
影响 |
缓解措施 |
| 火绒 API 性能 |
终端数量多时可能超时 |
分页获取,增加重试机制 |
| 联软数据更新 |
用户-终端关联可能变更 |
建议每次检查前重新导入最新 Excel |
| 企微消息频率限制 |
大批量发送可能触发限制 |
增加发送间隔,批量改单发 |
10. 附录
数据字段映射
火绒终端字段(API 返回)
client_id: 终端唯一标识
hostname: 主机名
ip: IP 地址
mac: MAC 地址
software: 已安装软件列表
联软 Excel 字段
用户名: 企微/AD 用户名
用户全名: 真实姓名
部门名称: 组织架构
设备名称: 终端名称
设备IP: IP 地址
MAC地址: MAC 地址
软件名称: 已安装软件
安装日期: 软件安装时间
匹配优先级
- IP 地址完全匹配
- 主机名包含匹配(联软设备名称 in 火绒主机名)
- MAC 地址匹配
变更记录
| 日期 |
版本 |
变更内容 |
变更人 |
变更原因 |
| 2026-07-20 |
v1.0 |
初始版本 |
Simon |
新建需求 |
审批记录
| 角色 |
姓名 |
日期 |
签字 |
| 产品负责人 |
|
|
|
| 技术负责人 |
|
|
|
| 业务负责人 |
|
|
|