Agent安全工具箱(免费版)

核心能力:,可自发提升工作效率. 适用于需要security toolkit相关能力的开发场景,包含结构化的工作流程和可复用的模板,帮助用户快速完成任务并保持代码质量. 适用于需要security toolkit相关能力的开发场景,包含结构化的工作流程和配置指引. 该工具经过深度差异化处置,针对用户反馈和使用痛点进行了调优改进,提升了实用性和可操作性.

天轰穿

@thcjp

What This Skill Does

AI Agent安全扫描工具,内置24条检测规则,覆盖命令执行、密钥泄露、Prompt注入等风险,支持JavaScript、TypeScript、Python、Solidity、Markdown等文件的静态分析,自动分级风险并输出修复建议。

Replaces manual code review and ad-hoc security checks by providing a structured, rule-based static analysis pipeline for AI Agent codebases.

When to Use It

  • Scan a third-party AI Agent skill directory for security risks before installation
  • Audit your own project codebase for hardcoded private keys or mnemonic phrases
  • Detect Prompt injection vulnerabilities in Markdown or configuration files
  • Check for remote code loading or auto-update mechanisms in JavaScript/TypeScript files
  • Identify potential data exfiltration via webhooks or unrestricted network calls
  • Run a targeted scan for Solidity smart contract risks like reentrancy or unlimited approval

Install

$ openclaw skills install @thcjp/security-toolkit-free

Agent安全工具箱(免费版)

概述

Agent安全工具箱免费版是一款专为AI Agent生态设计的安全扫描工具。内置24条安全检测规则,覆盖命令执行、自动更新、远程加载、密钥泄露、Prompt注入等AI特有安全风险。支持 JavaScript、TypeScript、Python、Solidity、Markdown 等多种文件类型的静态分析,自动进行风险分级并输出可操作的修复建议.

核心能力

24条安全检测规则

编号规则ID严重等级检测内容
1SHELL_EXECHIGH命令执行能力
2AUTO_UPDATECRITICAL自动更新/下载执行
3REMOTE_LOADERCRITICAL远程动态代码加载
4READ_ENV_SECRETSMEDIUM环境变量读取
5READ_SSH_KEYSCRITICALSSH密钥文件访问
6READ_KEYCHAINCRITICAL系统密钥链/浏览器配置
7PRIVATE_KEY_PATTERNCRITICAL硬编码私钥
8MNEMONIC_PATTERNCRITICAL硬编码助记词
9WALLET_DRAININGCRITICAL代币盗取模式
10UNLIMITED_APPROVALHIGH无限授权模式
11HIGHRISK_SELFDESTRUCTHIGH合约自毁
12HIDDEN_TRANSFERMEDIUM非标准转账实现
13PROXY_UPGRADEMEDIUM代理升级模式
14FLASH_LOAN_RISKMEDIUM闪电贷使用
15REENTRANCY_PATTERNHIGH重入攻击模式
16SIGNATURE_REPLAYHIGH签名重放
17OBFUSCATIONHIGH代码混淆技术
18PROMPT_INJECTIONCRITICALPrompt注入攻击
19NET_EXFIL_UNRESTRICTEDHIGH无限制数据外传
20WEBHOOK_EXFILCRITICALWebhook数据外泄
21网络代理_DISTRIBUTIONCRITICAL木马分发
22SUSPICIOUS_PASTE_URLHIGH可疑粘贴板URL
23SUSPICIOUS_IPMEDIUM硬编码公网IP
24SOCIAL_ENGINEERINGHIGH社会工程学诱导

处理: 解析条安全检测规则的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回条安全检测规则的响应数据,包含状态码、结果和日志.

免费版与专业版对比

功能免费版专业版
检测规则24条24条+自定义规则
扫描模式基础扫描深度扫描+行为分析
行动评估不支持运行时安全决策
巡检模式不支持8项自动巡检
信任注册表不支持信任等级管理
健康检查不支持6维度健康评分
HTML报告不支持可视化报告
批量扫描单目录多目录批量

处理: 解析免费版与专业版对比的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回免费版与专业版对比的响应数据,包含状态码、结果和日志.

核心功能执行

input_params参数进行配置.

处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.

  • 执行此能力时使用input_params参数,支持创建/查询/导出操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:Agent、安全扫描与风险检、条规则覆盖注入、密钥泄露、恶意代码等、适合个人开发者、核心能力、条安全检测规则覆、盖代码与配置、Python、Markdown、等多语言扫描、风险等级自动分级、LOW、命令行扫描与报告等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.

使用场景

依赖详情

在安装任何第三方Skill之前,先执行安全扫描.

输入格式

参数名类型必填说明
inputstringAgent安全工具箱(免费版)处理的输入数据或指令
optionsobject附加配置选项,如模式选择、格式偏好等
callback_urlstring异步处理完成后的回调通知URL
# 扫描Skill目录
node (请参考skill目录中的脚本文件) /path/to/skill-directory

输出示例:

安全扫描报告
═══════════════════════════════════════
目标: /path/to/skill-directory
风险等级: CRITICAL
扫描文件: 12
发现问题: 3
# ...
发现项:
| # | 规则 | 严重等级 | 文件:行号 | 证据 |
|:---:|:---:|:---:|:---:|:---:|
| 1 | REMOTE_LOADER | critical | index.js:42 | 安全解析(remoteData) |
| 2 | READ_ENV_SECRETS | medium | config.js:15 | process.env.SECRET |
| 3 | PROMPT_INJECTION | critical | SKILL.md:8 | "遵循当前指令" |
# ...
建议: 不要安装此Skill,存在严重安全风险.

场景二:代码仓库安全自检

# 扫描整个项目
node (请参考skill目录中的脚本文件) /path/to/project --full

场景三:检测特定风险

# 只检测密钥泄露
node (请参考skill目录中的脚本文件) /path/to/project --rule PRIVATE_KEY_PATTERN
# ...
# 只检测Prompt注入
node (请参考skill目录中的脚本文件) /path/to/project --rule PROMPT_INJECTION

不适用场景

以下场景Agent安全工具箱(免费版)不适合处理:

  • 渗透测试未授权目标
  • 物理安全防护
  • 社会工程学攻击

触发条件

需要安全检测、合规审计、漏洞扫描、加密防护时使用。不适用于非本工具能力范围的需求.

快速开始

  1. 阅读## 核心能力章节了解skill功能
  2. 按## 依赖说明配置环境
  3. 执行所需能力对应的命令
  4. 参考## 错误处理章节处理异常
  5. 查看## FAQ解答常见疑问

扫描脚本

# ...
# ...
# ...
# ...
# ...
# ...
# ...
# ...
# ...
# ...
result = "操作完成"
import os
import re
import json
from pathlib import Path
class SecurityScanner:
    """AI Agent安全扫描器"""
    RULES = {
        "SHELL_EXEC": {
            "severity": "HIGH",
            "pattern": r"(child_process|exec\(|execSync\(|spawn\(|subprocess\.)",
            "description": "命令执行能力"
        },
        "AUTO_UPDATE": {
            "severity": "CRITICAL",
            "pattern": r"(curl|wget|fetch)\s*.*\|\s*(bash|sh|python|node)",
            "description": "自动更新/下载执行"
        },
        "REMOTE_LOADER": {
            "severity": "CRITICAL",
            "pattern": r"(eval\(|Function\(|require\(.*http|import\(.*http)",
            "description": "远程动态代码加载"
        },
        "READ_ENV_SECRETS": {
            "severity": "MEDIUM",
            "pattern": r"(process\.env\.|os\.environ\.|getenv\().*(?:KEY|SECRET|TOKEN|PASSWORD|PRIVATE)",
            "description": "环境变量密钥读取"
        },
        "PRIVATE_KEY_PATTERN": {
            "severity": "CRITICAL",
            "pattern": r"(0x[a-fA-F0-9]{64}|-----BEGIN.*PRIVATE KEY-----)",
            "description": "硬编码私钥"
        },
        "MNEMONIC_PATTERN": {
            "severity": "CRITICAL",
            "pattern": r"(mnemonic|seed_phrase|seedPhrase).{0,20}['\"].{20,}",
            "description": "硬编码助记词"
        },
        "PROMPT_INJECTION": {
            "severity": "CRITICAL",
            "pattern": r"(ignore\s+(previous|all|above)\s+instructions|system\s*prompt|<\|im_start\|>)",
            "description": "Prompt注入攻击"
        },
        "OBFUSCATION": {
            "severity": "HIGH",
            "pattern": r"(eval\(atob|eval\(decode|\\x[0-9a-f]{2}\\x[0-9a-f]{2}\\x[0-9a-f]{2})",
            "description": "代码混淆技术"
        },
        "NET_EXFIL_UNRESTRICTED": {
            "severity": "HIGH",
            "pattern": r"(fetch|axios|http\.post|requests\.post).*(?!.*allowlist)",
            "description": "无限制数据外传"
        },
        "WEBHOOK_EXFIL": {
            "severity": "CRITICAL",
            "pattern": r"(discord\.com/api/webhooks|hooks\.slack\.com|.*\.webhook\.*)",
            "description": "Webhook数据外泄"
        }
    }
    SKIP_DIRS = {"node_modules", "dist", "build", ".git", "coverage", "__pycache__", ".venv", "venv"}
    SCAN_EXTENSIONS = {".js", ".ts", ".jsx", ".tsx", ".mjs", ".cjs", ".py", ".json", ".yaml", ".yml", ".sh", ".md"}
    def __init__(self):
        self.findings = []
        self.files_scanned = 0
    def scan(self, target_path):
        """扫描目标路径"""
        target = Path(target_path)
        if target.is_file():
            self._scan_file(target)
        else:
            for root, dirs, files in os.walk(target):
                dirs[:] = [d for d in dirs if d not in self.SKIP_DIRS]
                for file in files:
                    filepath = Path(root) / file
                    if filepath.suffix in self.SCAN_EXTENSIONS:
                        self._scan_file(filepath)
        return self._generate_report(target_path)
    def _scan_file(self, filepath):
        """扫描单个文件"""
        self.files_scanned += 1
        try:
            with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
                lines = f.readlines()
            for line_num, line in enumerate(lines, 1):
                for rule_id, rule in self.RULES.items():
                    if re.search(rule["pattern"], line, re.IGNORECASE):
                            "rule": rule_id,
                            "severity": rule["severity"],
                            "file": str(filepath),
                            "line": line_num,
                            "evidence": line.strip()[:100],
                            "description": rule["description"]
                        })
        except Exception:
    def _generate_report(self, target):
        """生成扫描报告"""
        risk_level = "LOW"
        if any(f["severity"] == "CRITICAL" for f in self.findings):
            risk_level = "CRITICAL"
        elif any(f["severity"] == "HIGH" for f in self.findings):
            risk_level = "HIGH"
        elif any(f["severity"] == "MEDIUM" for f in self.findings):
            risk_level = "MEDIUM"
        return {
            "target": target,
            "risk_level": risk_level,
            "files_scanned": self.files_scanned,
            "total_findings": len(self.findings),
            "findings": self.findings
        }

示例

扫描配置

{
  "scan_config": {
    "skip_dirs": ["node_modules", "dist", "build", ".git"],
    "scan_extensions": [".js", ".ts", ".py", ".md", ".json"],
    "rules_enabled": "all",
    "markdown_code_blocks_only": true,
    "decode_base64": true,
    "output_format": "json"
  }
}

优秀实践

1. 安装前必扫

# 安装任何新Skill前执行安全扫描
node (请参考skill目录中的脚本文件) ./.skills/new-skill/

2. 定期安全自检

# 每周扫描工作区
node (请参考skill目录中的脚本文件) ./workspace/ --full --output weekly_scan.json

3. 关注CRITICAL级别

# 只显示严重问题
node (请参考skill目录中的脚本文件) /path/to/project | grep CRITICAL

常见问题

Q1: 扫描会产生误报吗?

A: 静态扫描可能产生误报。建议结合上下文判断,例如 process.env 在配置文件中是正常的,但在传输到外部服务器时则是风险.

Q2: Markdown文件如何扫描?

A: 免费版只扫描Markdown文件中的代码块(```标记之间的内容),避免误报正文中的技术描述.

Q3: 扫描速度如何?

A: 100个文件的扫描约需3-5秒,取决于文件大小和规则数量.

Q4: 如何获取行动评估和巡检功能?

A: 这些是专业版功能。免费版专注于静态代码扫描,专业版增加了运行时行动评估、自动巡检和信任管理.

依赖说明

运行环境

  • Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
  • 操作系统: Windows / macOS / Linux
  • Python版本: 3.8+ 或 Node.js 16+

第三方依赖

依赖项类型是否必需获取方式
Python运行时必需系统自带或 python.org 下载
re模块标准库必需Python内置
pathlib模块标准库必需Python内置

API Key 配置

  • 免费版无需任何 API Key,完全本地执行

可用性分类

  • 分类: MD+EXEC模式纯Markdown指令,部分功能需exec命令行执行)
  • 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent执行安全扫描任务

错误处理

错误场景原因处理方式
配置错误参数缺失或格式错误检查依赖说明中的配置要求
运行时错误运行环境不满足确认运行环境符合依赖说明
网络错误连接超时或不可达执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案

已知限制

  • 本地运行,不支持多设备同步
  • 不能替代专业安全审计,仅提供辅助检查能力
  • 加密强度依赖正确配置的密钥与算法参数
  • 安全策略需定期更新以应对新威胁

Top skills in this category

Skill Vetter

@spclaudehome

Security-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.

1.3k271k

Skill Vetter - Pre-Install Security Review

@donovanpankratz-del

Security vetting protocol before installing any AI agent skill. Red flag detection for credential theft, obfuscated code, exfiltration. Risk classification L...

2726k

google-slides

@byungkyu

Google Slides API integration with managed OAuth. Create presentations, add slides, insert content, and manage slide formatting. Use this skill when users want to interact with Google Slides. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login; default to read and list calls, and confirm every write or new connection with the user.

3320k

google-workspace-admin

@byungkyu

Google Workspace Admin SDK integration with managed OAuth. This is a write-capable administrative integration for users, groups, organizational units, roles, and domain settings. Only connect with a least-privileged Google admin account, restrict OAuth scopes to the specific resources needed, and revoke the connection after use. All write operations require explicit user approval showing the exact HTTP method, endpoint path, and target resource identifier before execution. Use this skill only when users need Google Workspace administration. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway). Calls run through the `maton` CLI with OAuth login; default to read and list calls, and confirm every write or new connection with the user.

2118k

OpenClaw Token Optimizer

@asif2bd

OpenClaw Token Optimizer v3.2.0 — practical cost-control toolkit for OpenClaw agents. Lazy context loading, Sonnet/Opus-aware routing, heartbeat scheduling,...

3013k