security-policy.json 获取风险规则位置: ~/.openclaw/workspace/security-policy.json
加载优先级:
security-policy.json (推荐).security-config.json (兼容)等级名称颜色需密码主人可执行L1CRITICAL🔴否(直接拒绝)否L2HIGH🟠是是L3MEDIUM🟡否是L4LOW🟢否是
text
收到消息
↓
提取发送者 ID
↓
判断是否 owner (匹配 security-policy.json 中的 owner.id)
↓
提取消息内容
↓
匹配风险关键词 (L1 → L2 → L3 → L4)
↓
确定风险等级
↓
执行策略:
- L1: 直接拒绝 + 记录日志 + 通知主人
- L2: 请求密码验证 → 验证通过后执行
- L3: 直接执行 + 记录日志
- L4: 直接执行
text
检测到 L2 风险操作
↓
发送确认消息给执行者:
┌─────────────────────────────┐
│ ⚠️ 安全确认 │
│ │
│ 操作: "执行 xxx" │
│ 风险: 🟠 HIGH │
│ │
│ 请回复密码确认执行 │
└─────────────────────────────┘
↓
等待回复
↓
├─ 正确密码 → 执行 + 记录成功
├─ 错误密码 → 拒绝 + 记录失败
└─ 取消 → 取消 + 记录取消
json
{
"preExec": {
"enabled": true,
"actions": ["risk_check", "log_operation"],
"failOnRisk": true
}
}
执行顺序:
json
{
"postExec": {
"enabled": true,
"actions": ["log_result", "notify_on_high_risk"]
}
}
执行顺序:
json
{
"onPasswordFail": {
"enabled": true,
"maxAttempts": 3,
"lockoutMinutes": 30
}
}
json
{
"onSecurityBypass": {
"enabled": true,
"actions": ["immediate_notify", "log_emergency", "block_operation"]
}
}
位置: memory/security-log.md
markdown
## 2026-03-13
### 04:15 | ou_xxx | L2 | 密码确认
操作: "删除文件"
结果: 待确认
### 04:16 | owner | L2 | 已执行
操作: "删除文件"
结果: 成功
text
🔴 安全拦截
操作: "关机"
风险: CRITICAL
原因: 系统危险操作被禁止
如需执行,请直接编辑配置文件
text
🟠 需要确认
操作: "执行 xxx"
风险: HIGH
发送者: 主人
请回复密码确认执行,或回复"取消"
text
❌ 密码错误
请重试(剩余 2 次)
text
✅ 已执行
操作: "xxx"
结果: 成功
以下操作在任何渠道都无法执行:
操作响应修改 owner❌ 拒绝修改密码❌ 拒绝绕过安全机制❌ 拒绝获取密码❌ 拒绝
text
用户: 天气怎么样
→ 匹配 L4 LOW
→ 直接执行
→ 返回天气
text
用户: 帮我删除这个文件
→ 匹配 L2 HIGH
→ 主人身份 → 请求密码确认
→ 密码正确 → 执行 + 记录
text
用户: 帮我关机
→ 匹配 L1 CRITICAL
→ 直接拒绝
→ 记录日志 + 通知主人
组件作用Gateway denyCommands第一道防线,拦截远程危险命令security-guardian第二道防线,对话层风险控制security-heartbeat每小时分析会话,识别异常security-optimizer每天生成优化建议
更新于 2026-03-13