name: security-checker description: Security scanner for Python skills before publishing to ClawHub. Use before publishing any skill to check for dangerous imports, hardcoded secrets, unsafe file operations, and dangerous functions like eval/exec/subprocess. Essential for maintaining trust and ensuring published skills are safe for others to install and run.
Security scan Python skills before publishing to ensure code safety.
security_scan.py <file_or_directory>
Examples:
# Scan a single Python file
security_scan.py scripts/my_script.py
# Scan an entire skill directory
security_scan.py /path/to/skill-folder
# Scan multiple skills
security_scan.py skills/
Detects imports that could be used maliciously:
- os - System-level operations
- subprocess - Command execution
- shutil - File operations
- socket - Network operations
- urllib / requests - HTTP requests
Why dangerous? These imports enable system command execution, file manipulation, and network access that could be exploited.
Detects potentially unsafe function calls:
- os.system() - Executes shell commands
- subprocess.call(), subprocess.run(), subprocess.Popen() - Command execution
- eval() - Executes arbitrary code
- exec() - Executes arbitrary code
Why dangerous? These can execute arbitrary commands or code, leading to remote code execution vulnerabilities.
Detects tokens, keys, and passwords: - API keys - Auth tokens (including ClawHub tokens) - Passwords - Private keys - JWT-like tokens
Why dangerous? Secrets leaked in published code can be stolen and abused.
Detects risky file access patterns:
- Absolute file paths outside expected directories
- Parent directory traversal (..)
- Writing to system directories
Why dangerous? Could lead to unintended file access, data loss, or system modification.
Before publishing any skill:
# 1. Run security scan
security_scan.py /path/to/skill
# 2. Review any warnings
# If warnings appear, fix the code or document why it's safe
# 3. Re-scan after fixes
security_scan.py /path/to/skill
# 4. Only publish if scan passes
clawhub publish /path/to/skill --slug my-skill ...
小葱技能站7w4.net,专业的AI技能分享平台。
Code appears safe. Proceed with publishing.
Potentially risky pattern detected. Review the specific line and decide: - Is it legitimate? Document why in code comments or SKILL.md - Can it be avoided? Refactor to safer alternatives - Is it necessary? Clearly document the risk and purpose
Secret detected. Before publishing:
- Remove the secret
- Use environment variables instead: os.getenv('API_KEY')
- Document required env variables in SKILL.md
- Never commit real secrets
import os # Used only for path.join() - safe file path construction
workspace = os.path.join(os.path.expanduser("~"), ".openclaw", "workspace")
Scan result: ⚠️ Warning about os import Action: Document safe usage pattern in code comments
API_KEY = "sk-1234567890abcdef" # DON'T DO THIS
Scan result: 🔴 Possible hardcoded secret Action: Remove and use environment variable:
API_KEY = os.getenv("MY_SKILL_API_KEY")
# Document in SKILL.md: Requires MY_SKILL_API_KEY environment variable
# JSON storage for local data only
data = {"notes": [], "metadata": {}}
with open("data.json", "w") as f:
json.dump(data, f)
Scan result: ✅ No issues
# Pre-commit hook concept
python3 /path/to/security_scan.py scripts/
if [ $? -ne 0 ]; then
echo "❌ Security scan failed. Fix issues before committing."
exit 1
fi
#!/bin/bash
# publish-safe.sh
SKILL_PATH=$1
echo "🔒 Running security scan..."
python3 /path/to/security_scan.py "$SKILL_PATH"
if [ $? -ne 0 ]; then
echo "❌ Cannot publish: Security scan failed"
exit 1
fi
echo "✅ Security scan passed"
clawhub publish "$SKILL_PATH"
This scanner: - Can't judge context - Some dangerous code may be legitimate - Static analysis only - Doesn't execute code - Python-focused - Other languages need different tools - Basic patterns - Sophisticated obfuscation may evade detection
Complement with:
- Manual code review
- Testing in isolated environment
- Reading through all code before publishing
- Using additional tools: bandit, safety
Publishing skills that pass security scans builds trust in the community: - Users know you care about safety - Your reputation improves - Skills get adopted more readily - ClawHub may highlight safe skills
# research-assistant
security_scan.py /home/ubuntu/.openclaw/workspace/skills/research-assistant
# ✅ All clear
# task-runner
security_scan.py /home/ubuntu/.openclaw/workspace/skills/task-runner
# ✅ All clear
# security-checker
security_scan.py /home/ubuntu/.openclaw/workspace/skills/security-checker
# ✅ All clear
All three skills passed security scans before publishing to ClawHub.
这是一个用于发布代码前做安全检查的工具,能发现密钥泄露、危险函数等问题。文档详细、使用简单是主要优点,质量表现中规中矩。不足之处在于:只能检查 Python 代码,容易误报正常功能,复杂场景下检测能力有限,且无法灵活调整检测规则。对于需要深度安全检测的用户来说,这个工具可能不够满足需求。