๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
ๅฐ้พ™่™พๅฐ้พ™่™พAI
๐Ÿค–

Openclaw Sentinel

Supply chain security for agent skills. Pre-install inspection, post-install scanning, obfuscation detection, and known-bad signature matching. Verify skills are safe before they touch your workspace. Free alert layer โ€” upgrade to openclaw-sentinel-pro for quarantine, blocking, and community threat feeds.

ไธ‹่ฝฝ1.1k
ๆ˜Ÿๆ ‡0
็‰ˆๆœฌ1.0.2
ๅฎ‰ๅ…จๅˆ่ง„
ๅฎ‰ๅ…จ้€š่ฟ‡

ๆŠ€่ƒฝ่ฏดๆ˜Ž


name: openclaw-sentinel user-invocable: true metadata: {"openclaw":{"emoji":"๐Ÿฐ","requires":{"bins":["python3"]},"os":["darwin","linux","win32"]}}

OpenClaw Sentinel

Supply chain security scanner for agent skills. Detects obfuscated code, known-bad signatures, suspicious install behaviors, dependency confusion, and metadata inconsistencies โ€” before and after installation.

The Problem

You install skills from the community. Any skill can contain obfuscated payloads, post-install hooks that execute arbitrary code, or supply chain attacks that modify other skills in your workspace. Existing tools verify file integrity after the fact โ€” nothing inspects skills for supply chain risks before they run.

Commands

Scan Installed Skills

Deep scan of all installed skills for supply chain risks. Checks file hashes against a local threat database, detects obfuscated code patterns, suspicious install behaviors, dependency confusion, and metadata inconsistencies. Generates a risk score (0-100) per skill.

python3 {baseDir}/scripts/sentinel.py scan --workspace /path/to/workspace

Scan a Single Skill

python3 {baseDir}/scripts/sentinel.py scan openclaw-warden --workspace /path/to/workspace

Pre-Install Inspection

Scan a skill directory BEFORE copying it to your workspace. Outputs a SAFE/REVIEW/REJECT recommendation and shows exactly what binaries, network calls, and file operations the skill will perform.

python3 {baseDir}/scripts/sentinel.py inspect /path/to/skill-directory

Manage Threat Database

View current threat database statistics.

python3 {baseDir}/scripts/sentinel.py threats --workspace /path/to/workspace

Import a community-shared threat list.

python3 {baseDir}/scripts/sentinel.py threats --update-from threats.json --workspace /path/to/workspace

Quick Status

Summary of installed skills, scan history, and risk score overview.

python3 {baseDir}/scripts/sentinel.py status --workspace /path/to/workspace

Workspace Auto-Detection

If --workspace is omitted, the script tries:

  1. OPENCLAW_WORKSPACE environment variable
  2. Current directory (if AGENTS.md exists)
  3. ~/.openclaw/workspace (default)

What It Detects

CategoryPatterns
Encoded Executioneval(base64.b64decode(...)), exec(compile(...)), eval/exec with encoded strings
Dynamic Imports__import__('os').system(...), dynamic subprocess/ctypes imports
Shell Injectionsubprocess.Popen with shell=True + string concatenation, os.system()
Remote Code Execurllib/requests combined with exec/eval โ€” download-and-run patterns
ObfuscationLines >1000 chars, high-entropy strings, minified code blocks
Install BehaviorsPost-install hooks, auto-exec in __init__.py, cross-skill file writes
Hidden FilesNon-standard dotfiles and hidden directories
Dependency ConfusionSkills shadowing popular package names, typosquatting near-matches
Metadata MismatchUndeclared binaries, undeclared env vars, invocable flag inconsistencies
Serializationpickle.loads, marshal.loads โ€” arbitrary code execution via deserialization
Known-Bad HashesFile SHA-256 matches against local threat database

Risk Scoring

Each skill receives a score from 0-100:

ScoreLabelMeaning
0CLEANNo issues detected
1-19LOWMinor findings, likely benign
20-49MODERATEReview recommended
50-74HIGHSignificant risk, review required
75-100CRITICALSerious supply chain risk

Threat Database Format

Community-shared threat lists use this JSON format:

{
  "hashes": {
    "<sha256hex>": {"name": "...", "severity": "...", "description": "..."}
  },
  "patterns": [
    {"name": "...", "regex": "...", "severity": "..."}
  ]
}

Exit Codes

  • 0 โ€” Clean, no issues
  • 1 โ€” Review needed
  • 2 โ€” Threats detected

No External Dependencies

Python standard library only. No pip install. No network calls. Everything runs locally.

Cross-Platform

Works with OpenClaw, Claude Code, Cursor, and any tool using the Agent Skills specification.

ๅฆ‚ไฝ•ไฝฟ็”จใ€ŒOpenclaw Sentinelใ€๏ผŸ

  1. ๆ‰“ๅผ€ๅฐ้พ™่™พAI๏ผˆWeb ๆˆ– iOS App๏ผ‰
  2. ็‚นๅ‡ปไธŠๆ–นใ€Œ็ซ‹ๅณไฝฟ็”จใ€ๆŒ‰้’ฎ๏ผŒๆˆ–ๅœจๅฏน่ฏๆก†ไธญ่พ“ๅ…ฅไปปๅŠกๆ่ฟฐ
  3. ๅฐ้พ™่™พAI ไผš่‡ชๅŠจๅŒน้…ๅนถ่ฐƒ็”จใ€ŒOpenclaw Sentinelใ€ๆŠ€่ƒฝๅฎŒๆˆไปปๅŠก
  4. ็ป“ๆžœๅณๆ—ถๅ‘ˆ็Žฐ๏ผŒๆ”ฏๆŒ็ปง็ปญๅฏน่ฏไผ˜ๅŒ–

็›ธๅ…ณๆŠ€่ƒฝ