openclaw-audit-watchdog技能使用说明
提示安全审计 (openclaw)
安装选项
您可以通过两种方式获取 openclaw-audit-watchdog:
选项 A:与 ClawSec 套件捆绑安装(推荐)
如果您已安装 clawsec-suite,可能已经包含此组件!

openclaw-audit-watchdog 与 ClawSec 套件捆绑提供,以提供关键的自动化安全审计功能。安装套件时,如果尚未安装审计看门狗,将从捆绑副本中部署。
优势:
- 便捷 - 无需单独下载
- 标准位置 - 安装至
~/.openclaw/skills/openclaw-audit-watchdog/ - 保护性 - 若已安装审计看门狗,不会被覆盖
- 单一验证 - 作为套件包的组成部分进行完整性检查
选项 B:独立安装(本页)
无需完整套件,独立安装 openclaw-audit-watchdog。
适用场景:
- 仅需审计看门狗(无需其他套件组件)
- 您希望在安装套件之前先进行安装
- 您更倾向于对审计监控程序的安装进行明确控制
优势:
- 更轻量级的安装
- 独立于套件
- 对安装过程的直接控制
继续以下独立安装说明。
目标
创建(或更新)一个每日cron任务,该任务:
- 运行:
openclaw security audit --jsonopenclaw security audit --deep --json
-
总结发现(关键/警告/信息 + 主要发现)
-
将报告发送至:
- 用户选定的DM目标(频道 + 接收者ID/句柄)
默认计划:每日23:00(晚上11点)在所选时区。
交付方式:
- 发送私信至最近活跃的会话
使用示例
示例1:快速启动(环境变量)
对于自动化/MDM部署,请在调用前设置环境变量:
export PROMPTSEC_DM_CHANNEL="telegram"
export PROMPTSEC_DM_TO="@yourhandle"
export PROMPTSEC_TZ="America/New_York"
export PROMPTSEC_HOST_LABEL="prod-server-01"
# Then invoke the skill
/openclaw-audit-watchdog
该技能将自动配置并创建cron任务,无需提示。
示例2:交互式设置
如果未设置环境变量,该技能将进行最简化的提示:
User: /openclaw-audit-watchdog
Agent: Setting up daily security audit watchdog...
What channel should I use for delivery? (e.g., telegram, slack)
User: telegram
Agent: What's the recipient ID or handle?
User: @myhandle
Agent: Which timezone for the 23:00 daily run? (default: UTC)
User: America/Los_Angeles
Agent: ✓ Created cron job "Daily security audit (Prompt Security)"
Schedule: Daily at 23:00 America/Los_Angeles
Delivery: telegram → @myhandle
示例3:更新现有任务
如果任务已存在,该技能将更新它而不是重复创建:
User: /openclaw-audit-watchdog
Agent: Found existing "Daily security audit (Prompt Security)" job.
Current: Daily at 23:00 UTC → telegram:@oldhandle
Update delivery target? (current: telegram:@oldhandle)
User: slack:#security-alerts
Agent: ✓ Updated cron job
Schedule: Daily at 23:00 UTC
Delivery: slack:#security-alerts
示例4:交付内容
每天在预定时间,您将收到如下报告:
🔭 Daily Security Audit Report
Host: prod-server-01
Time: 2026-02-16 23:00:00 America/New_York
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SUMMARY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ Standard Audit: 12 checks passed, 2 warnings
✓ Deep Audit: 8 probes passed, 1 critical
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CRITICAL FINDINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[CRIT-001] Unencrypted API Keys Detected
→ Remediation: Move credentials to encrypted vault or use environment variables
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WARNINGS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[WARN-003] Outdated Dependencies Found
→ Remediation: Run `openclaw security audit --fix` to update
[WARN-007] Weak Permission on Config File
→ Remediation: chmod 600 ~/.openclaw/config.json
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Run `openclaw security audit --deep` for full details.
示例5:自定义计划
需要不同的计划?请在调用前设置:
# Run every 6 hours instead of daily
export PROMPTSEC_SCHEDULE="0 */6 * * *"
/openclaw-audit-watchdog
示例6:多环境管理
要管理多个服务器,请使用不同的主机标签:
# On dev server
export PROMPTSEC_HOST_LABEL="dev-01"
export PROMPTSEC_DM_TO="@dev-team"
/openclaw-audit-watchdog
# On prod server
export PROMPTSEC_HOST_LABEL="prod-01"
export PROMPTSEC_DM_TO="@oncall"
/openclaw-audit-watchdog
每个都将发送带有明确主机标识的报告。
示例7:抑制已知发现
要抑制已审查并接受的审计发现,请传递--enable-suppressions设置标志并确保配置文件包含"enabledFor": ["audit"]哨兵:
# Create or edit the suppression config
cat > ~/.openclaw/security-audit.json <<'JSON'
{
"enabledFor": ["audit"],
"suppressions": [
{
"checkId": "skills.code_safety",
"skill": "clawsec-suite",
"reason": "First-party security tooling — reviewed by security team",
"suppressedAt": "2026-02-15"
}
]
}
JSON
# Run with suppressions enabled
/openclaw-audit-watchdog --enable-suppressions
被抑制的发现项仍会出现在报告的信息部分中,但会从关键/警告总数中排除。
抑制 / 允许列表
审计管道支持一种选择加入的抑制机制,用于管理已审查的发现项。抑制采用纵深防御激活方式:必须同时满足两个独立的关卡。
激活要求
- 命令行标志:必须在调用时传递
--enable-suppressions标志。 - 配置哨兵:配置文件必须包含
"enabledFor"并且数组中包含"audit"。
如果任一关卡缺失,所有发现项将正常报告,抑制列表将被忽略。
配置文件解析(4层)
- 显式
--config <路径>参数 OPENCLAW_AUDIT_CONFIG环境变量~/.openclaw/security-audit.json.clawsec/allowlist.json
配置格式
{
"enabledFor": ["audit"],
"suppressions": [
{
"checkId": "skills.code_safety",
"skill": "clawsec-suite",
"reason": "First-party security tooling — reviewed by security team",
"suppressedAt": "2026-02-15"
}
]
}
哨兵语义
"enabledFor": ["audit"]-- 审计抑制生效(同时需要--enable-suppressions标志)"enabledFor": ["advisory"]-- 仅咨询流水线抑制(对审计无影响)"enabledFor": ["audit", "advisory"]-- 两条流水线均遵循抑制规则- 缺失或为空
enabledFor-- 无抑制生效(安全默认值)
匹配规则
- checkId:与审计发现的检查标识符精确匹配(例如,
技能.代码安全) - 技能:与发现结果中的技能名称进行不区分大小写的匹配
- 两个字段必须匹配才能抑制发现结果
安装流程(交互式)
配置(MDM友好):优先使用环境变量(无需提示)。
必需的环境变量:
PROMPTSEC_DM_CHANNEL(例如:telegram)PROMPTSEC_DM_TO(收件人ID)
可选的环境变量:
PROMPTSEC_TZ(IANA时区;默认为UTC)PROMPTSEC_HOST_LABEL(报告中包含的标签;默认使用主机名)PROMPTSEC_INSTALL_DIR(cron载荷使用的稳定路径,在运行runner之前切换目录;默认:~/.config/security-checkup)PROMPTSEC_GIT_PULL=1(如果是从git安装,runner将执行 git pull --ff-only)
路径扩展规则(重要):
- 在
bash或zsh中,请使用PROMPTSEC_INSTALL_DIR="$HOME/.config/security-checkup"(或绝对路径)。 - 不要传递像
'$HOME/.config/security-checkup'这样的单引号字面量。 - 在PowerShell中,建议使用:
$env:PROMPTSEC_INSTALL_DIR = Join-Path $HOME ".config/security-checkup"。 - 如果路径解析失败,设置程序现在会以明确的错误信息退出,而不是创建一个字面意义上的
$HOME目录段。
如果环境变量或默认值未设置,交互式安装将是最后的手段。
即使在这种情况下,也要保持提示简洁,看门狗工具基本上是开箱即用的。
创建cron任务
使用cron工具创建一个任务,参数如下:
schedule.kind="cron"schedule.expr="0 23 * * *"schedule.tz=<安装程序时区>sessionTarget="isolated"wakeMode="now"payload.kind="agentTurn"payload.deliver=true
负载消息模板(agentTurn)
创建一个带有负载消息的任务,该消息指示独立运行执行以下操作:
- 运行审计
- 为便于稳健解析,优先使用JSON输出:
openclaw security audit --jsonopenclaw security audit --deep --json
- 生成一份简洁的文本报告:
包含:
- 时间戳 + 主机标识符(如可用)
- 摘要统计
- 对于每个CRITICAL/WARN级别的发现:
检查ID+标题+ 一行修复建议 - 如果深度探测失败:包含探测错误行
- 交付报告:
- 使用以下方式向选定的用户目标发送私信
消息工具
电子邮件交付要求
按此优先级顺序尝试电子邮件交付:
A) 如果此部署中存在电子邮件通道插件,则使用:
message(action="send", channel="email", target="target@example.com", message=<report>)
B) 否则,回退到本地的sendmail(如果可用):
exec使用:printf "%s" "$REPORT" | /usr/sbin/sendmail -t(构造收件人/主题头)
如果两种路径都不可行,仍应私信用户并包含一行:
"注意:无法发送至 target@example.com(电子邮件通道未配置)"
幂等性 / 更新
添加新作业前:
cron.list(includeDisabled=true)- 若存在名称匹配
"每日安全审计"的作业,应更新而非重复添加:- 调整时区/表达式计划
- 调整私信目标
建议命名
- 作业名称:
"每日安全审计 (Prompt Security)"
最小推荐默认值(勿自动更改配置)
cron的报告应建议修复方案但不得自动实施。
切勿运行执行OpenClaw安全审计并修复问题除非明确要求。


微信扫一扫,打赏作者吧~