Install
openclaw skills install openclaw-audit-logOpenClaw 安全审计与防护系统。当需要记录敏感操作、生成审计报告、查询历史操作记录、分析安全风险、执行两阶段确认拦截、扫描外部内容安全、检测文件完整性时激活。触发场景包括:用户要求查看操作记录、生成每日/每周审计报告、查询特定操作历史、分析高危操作、执行清理旧日志、高危操作需二次确认、检测操作速率异常、扫描外部URL/文本内容、验证skill文件完整性。
openclaw skills install openclaw-audit-log本 skill 提供完整的三层安全体系 + 主动防御:
| 层级 | 作用 | 状态 |
|---|---|---|
| 🛡️ 事前预防 | AGENTS.md 高危操作二次确认规则 | ✅ 已启用 |
| ⚠️ 事中拦截 | 飞书两阶段确认 → 执行/拦截 | ✅ 可用 |
| 📋 事后审计 | 完整操作记录 + 日报/周报 | ✅ 已部署 |
| 🔒 主动防御 | 速率监控 + 完整性校验 + 内容扫描 + 操作链分析 + URL白名单 | ✅ 已部署 |
基础记录:
from audit_logger import log
log("file_delete", "删除了 ~/.trash/file.txt", session_key="xxx")
操作类型(枚举):
| operation 值 | 说明 | 风险等级 | 需确认 |
|---|---|---|---|
file_delete | 文件删除 | high | ✅ |
file_write | 文件写入 | medium | |
file_move | 文件移动 | medium | |
external_send | 外部发送(邮件/消息) | high | ✅ |
config_change | 配置修改 | medium | |
credential_access | 凭证访问 | critical | ✅ |
permission_change | 权限变更 | high | ✅ |
external_api | 外部API调用 | medium | |
user_data_access | 用户数据访问 | medium | |
destruction | 高危破坏性操作 | critical | ✅ |
查询日志:
from audit_logger import query
records = query(limit=20)
high_risk = query(risk_level="high", limit=50)
发送确认请求(用于 cron/自动化流程):
python3 confirm.py request <操作类型> <详情> [执行脚本] [风险等级]
检查所有待确认项状态:
python3 confirm.py check
查询指定确认ID状态:
python3 confirm.py status <confirm_id>
功能:检测同一会话中的危险操作链,发现隐蔽的组合攻击。
python3 chain_analyzer.py
检测的8种危险模式:
| 模式 | 含义 | 风险 |
|---|---|---|
| credential_access → external_send | 凭证窃取外传 | 🔴 |
| file_delete → external_send | 销毁+外传 | 🔴 |
| destruction → credential_access | 入侵准备 | 🔴 |
| destruction → external_send | 销毁证据+外传 | 🔴 |
| credential_access → file_write | 凭证被保存 | 🟠 |
| credential_access → file_move | 凭证被转移 | 🟠 |
| file_write → external_send | 敏感文件外传 | 🟠 |
| external_api → external_send | API数据外传 | 🟠 |
功能:限制只能从可信域名拉取数据。
python3 url_guard.py check <URL> # 检查URL,返回0=允许/1=拒绝
python3 url_guard.py list # 列出白名单
python3 url_guard.py add <域名> [原因] # 添加白名单
python3 url_guard.py remove <域名> # 移除白名单
功能:检测 5 分钟内的异常操作速率
python3 rate_monitor.py
检查文件是否被篡改:
python3 skill_integrity.py check # 检查 + 告警
python3 skill_integrity.py update # 更新基准hash
python3 skill_integrity.py scan # 仅扫描
检测范围:.openclaw/workspace/skills/ 下的所有文件(排除 .git, node_modules)
在执行从外部 URL 或文本抓取的内容之前,先扫描其中的可疑模式。
支持的扫描类型:
python3 content_scan.py url <URL> # 扫描URL内容
python3 content_scan.py text <文本> # 扫描文本内容
python3 content_scan.py file <路径> # 扫描本地文件
检测的威胁模式:
使用示例(集成到自动化流程):
import subprocess
result = subprocess.run(
["python3", "content_scan.py", "url", external_url],
capture_output=True
)
if result.returncode != 0:
print("⚠️ 内容安全审查未通过,中止执行")
# 发送告警
else:
print("✅ 内容安全,继续执行")
python3 audit_report.py daily # 生成昨日审计日报
python3 audit_report.py daily 2026-03-20 # 指定日期
python3 audit_report.py weekly # 生成本周审计周报
python3 audit_feishu.py daily # 发送每日审计日报到飞书
python3 audit_feishu.py weekly # 发送每周审计周报到飞书
必须先确认的操作类型:
确认格式:
⚠️ 即将执行高危操作,请确认:
- 操作:XXX
- 对象:XXX
回复「确认」或「取消」
在执行以下操作前,必须先调用 content_scan.py:
import subprocess
result = subprocess.run(
["python3", "~/.openclaw/workspace/skills/openclaw-audit-log/scripts/content_scan.py", "text", text],
capture_output=True
)
if result.returncode != 0:
# 内容审查未通过,询问用户确认
ask_user_confirm("内容审查发现可疑模式,是否继续?")
| 任务 | 时间 | 功能 |
|---|---|---|
audit-daily-report | 每日 00:05 | 生成昨日日报 → 推飞书 |
audit-weekly-report | 每周一 00:10 | 生成上周周报 → 推飞书 |
audit-log-cleanup | 每月1日 03:00 | 清理90天前旧日志 |
audit-rate-monitor | 每5分钟 | 检测操作速率异常 → 推飞书 |
audit-chain-analyzer | 每5分钟 | 检测危险操作链 → 推飞书 |
audit-skill-integrity | 每日 06:00 | 检查skill文件完整性 → 推飞书 |
| 类型 | 路径 |
|---|---|
| 审计日志 | ~/.openclaw/audit/audit.log(JSONL) |
| 待确认队列 | ~/.openclaw/audit/pending_confirms.json |
| 速率告警冷却 | ~/.openclaw/audit/rate_alert_cooldown.json |
| Skill基准hash | ~/.openclaw/audit/skill_hashes.json |
content_scan.py 扫描代码skill_integrity.py check 检查文件完整性