SuperAPI AI 工具集

skill-security-scanner

安全与审计

查看项目

更新于 10-15 13:55

技能介绍

用途

skill-security-scanner 是一款命令行安全分析工具,专门用于扫描 Claude Skills,在安装前发现恶意代码、未授权网络请求、敏感文件访问、命令注入等安全风险。它通过静态分析工作,不执行被扫描的代码,并给出风险评分与详细报告。

主要能力

  • 多维度安全检测:覆盖网络请求、文件访问、系统命令、代码注入等方向。
  • 智能风险评分:按 CRITICAL / WARNING / INFO 分级。
  • 多种输出格式:带可视化的 HTML 报告、JSON、彩色控制台输出。
  • 可自定义规则与白名单。
  • 自动扫描 .claude/skills/ 目录。
  • 国际化支持(zh_CN、en_US)。

安装

开发模式安装:

git clone https://github.com/huifer/skill-security-scan cd skill-security-scan pip install -e .

或直接通过 pip 安装:

pip install skill-security-scan

验证安装:

skill-security-scan --help

独立可执行文件(无需 Python):

pyinstaller skill-security-scan.spec --clean ./dist/skill-security-scan.exe scan /path/to/skill

使用方式

基础扫描:

skill-security-scan scan skill-security-scan scan /path/to/suspicious-skill skill-security-scan scan ./skill1 ./skill2 ./skill3 skill-security-scan scan -r /path/to/skills-folder

报告生成:

skill-security-scan scan --output my_security_report.html skill-security-scan scan --format json --output report.json skill-security-scan scan --format console skill-security-scan scan --format html --severity CRITICAL --output critical_issues.html

高级选项:

skill-security-scan scan --rules custom-rules.yaml skill-security-scan scan --severity WARNING skill-security-scan scan --no-color skill-security-scan scan --fail-on CRITICAL skill-security-scan scan --lang en_US

组合用法示例:

skill-security-scan scan
-r
--format json
--output scan_results.json
--severity CRITICAL
--fail-on CRITICAL
--rules ./config/custom-rules.yaml
/path/to/third-party-skill

检测规则

CRITICAL 级别规则包括:NET001 外部网络请求、FILE001 敏感文件访问、FILE002 危险文件操作、CMD001 危险系统命令、INJ001 代码注入模式、INJ003 后门植入。

WARNING 级别规则包括:CMD002 系统命令执行、INJ002 动态代码执行、DEP001 全局包安装。

默认允许的域名(可配置)包括 api.anthropic.com、github.com、pypi.org、raw.githubusercontent.com。

配置

可通过自定义规则文件(如 custom-rules.yaml)扩展 network_rules、file_rules、command_rules,每条规则包含 id、name、severity、patterns、description 等字段。

白名单管理命令:

skill-security-scan whitelist add NET001 skill-security-scan whitelist list skill-security-scan whitelist remove NET001

也可在 config/whitelist.yaml 中为特定规则配置 whitelisted_patterns。

结果解读

风险评分计算:Risk Score = (Critical × 1.0) + (Warning × 0.3) + (Info × 0.1)

风险等级:SAFE 0.0-1.0;LOW 1.1-3.0;MEDIUM 3.1-6.0;HIGH 6.1-8.0;CRITICAL 8.1-10.0。

HTML 报告包含风险仪表盘、问题分布图、可按严重级别筛选的问题列表、文件与行号跳转、匹配置信度以及基于发现的自动建议。

适用场景

  • 安装第三方 Skill 前的安全检查。
  • 集成到 CI/CD 流程(如 GitHub Actions),在 PR 中扫描 .claude/skills/ 与 skills/ 目录。
  • 对已安装 Skill 进行批量审计。
  • 针对组织特定威胁编写自定义规则(如浏览器数据访问、密码管理器访问等)。

限制与注意事项

  • 采用静态分析,不执行代码,因此无法覆盖运行时行为。
  • 存在误报可能,可通过白名单或自定义规则的 allowed_domains 处理。
  • 大型仓库扫描时可通过 --exclude 排除文件类型,并注意文件大小限制(如 MAX_FILE_SIZE 5MB)。
  • 自定义规则需符合 schema(id、name、severity、patterns、description),否则可能无法加载。
  • 建议不要仅依赖风险评分,应结合 HTML 报告与置信度综合判断。

环境变量

export CLAUDE_SKILLS_PATH="$HOME/.claude/skills" export SKILL_SCAN_FORMAT="html" export SKILL_SCAN_LANG="en_US" export SKILL_SCAN_NO_COLOR=1

最佳实践

  • 安装第三方 Skill 前始终先扫描:skill-security-scan scan ./downloaded-skill --fail-on CRITICAL
  • 集成到开发流程:添加 pre-commit 钩子、纳入 CI/CD 流水线。
  • 定期审计已安装 Skill。
  • 使用自定义规则应对组织特定威胁,定义内部 IP 范围白名单、指定批准的 API 端点、添加公司特定的敏感文件模式。
  • 仔细审阅 HTML 报告,关注敏感场景下的 WARNING 问题与检测置信度。
  • 保持工具更新:pip install --upgrade skill-security-scan