360 Secure SkillHub
360 安全技能中心

Openclaw Snitch

面向 OpenClaw 的可配置屏蔽词防护 Skill,包含三层:bootstrap 事件注入安全指令、收到消息时提示受屏蔽词、在工具调用前拦截并终止匹配的调用,并默认向 Telegram 发送告警。屏蔽词可通过 openclaw.json 或 SNITCH_BLOCKLIST 环境变量配置。

rgr4y
rgr4y
热度 61.18
最近更新 2026-05-18 12:10:59
分类:安全依赖:第三方 API应用场景:工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add openclaw-snitch
Metadata
name
openclaw-snitch
version
1.0.0
description
Multi-layer blocklist guard for OpenClaw. Hard-blocks tool calls matching banned patterns, injects a security directive at agent bootstrap, warns on incoming messages, and broadcasts Telegram alerts. Blocks clawhub/clawdhub by default.
metadata
{"openclaw":{"emoji":"🚨","events":["agent:bootstrap","message:received","before_tool_call"]}}

openclaw-snitch

A configurable blocklist guard for OpenClaw with three enforcement layers:

  1. Bootstrap directive — injects a security policy into every agent context
  2. Message warning — flags incoming messages referencing blocked terms
  3. Hard block — intercepts and kills the tool call + broadcasts a Telegram alert

Install

Hooks (bootstrap + message guard)

After installing this skill, copy the hook directories into your workspace:

cp -r ~/.openclaw/workspace/skills/openclaw-snitch/hooks/snitch-bootstrap ~/.openclaw/hooks/snitch-bootstrap
cp -r ~/.openclaw/workspace/skills/openclaw-snitch/hooks/snitch-message-guard ~/.openclaw/hooks/snitch-message-guard

Then enable them in openclaw.json:

{
  "hooks": {
    "snitch-bootstrap": { "enabled": true },
    "snitch-message-guard": { "enabled": true }
  }
}

Plugin (hard block + Telegram alert)

For the hard enforcement layer, install the npm package:

npm install -g openclaw-snitch

Then add to openclaw.json:

{
  "plugins": {
    "allow": ["openclaw-snitch"]
  }
}

Lock down the plugin files after install so the agent can't self-modify:

chmod -R a-w ~/.openclaw/extensions/openclaw-snitch

Configuration

In openclaw.json under plugins.config.openclaw-snitch:

{
  "plugins": {
    "config": {
      "openclaw-snitch": {
        "blocklist": ["clawhub", "clawdhub"],
        "alertTelegram": true,
        "bootstrapDirective": true
      }
    }
  }
}
Key Default Description
blocklist ["clawhub", "clawdhub"] Terms to block (case-insensitive word boundary match)
alertTelegram true Broadcast Telegram alert to all allowFrom IDs on block
bootstrapDirective true Inject security directive into every agent bootstrap context

Hook blocklist (env var)

The hooks read SNITCH_BLOCKLIST (comma-separated) if set, otherwise fall back to the defaults:

SNITCH_BLOCKLIST=clawhub,clawdhub,myothertool

What gets blocked

Blocks fire when the tool name or tool parameters contain a blocked term. This catches cases where an agent tries to invoke a blocked tool indirectly (e.g. exec with clawhub install in the args).

Security notes

  • The hooks in ~/.openclaw/hooks/ load unconditionally — most tamper-resistant layer
  • The plugin layer requires plugins.allow — if an agent edits openclaw.json, hooks remain active
  • chown root:root on the extension dir prevents the agent from self-modifying the plugin