Cardea Skill:Claude Code 技能安全扫描器,80+ 项检查防止安装恶意技能包

Claude Code Skill 生态爆发背后,一个被忽视的问题正在浮出水面:Skill 发行几乎零门槛,任何人都可以把含恶意代码或漏洞的 Skill 发到 GitHub/npm,但没有任何检查工具。直到 Cardea 出现——它是目前唯一一款专门面向 Claude Code Skill 的安全扫描器,在安装前对 Skill 做 80+ 项安全检查,覆盖提示词注入、Unicode 隐写、依赖漏洞、权限过度索取等风险,并以 DO NOT INSTALL 判决书级别的报告输出结果。

功能与原则

Cardea 的核心能力是对任意 Claude Code Skill 文件夹执行 80+ 项静态安全检查,全程不运行 Skill 代码,只读字节流。

检查分为四个维度:

  • 结构合规:SKILL.md frontmatter 是否符合官方规范,文件路径与描述是否匹配
  • 死链接检测:Skill 声称存在的脚本/文件是否真实存在于磁盘
  • 提示词注入识别:40 种提示词注入与混淆模式(英文+多语言,含同形字/零宽字符归一化检测)+ 18 种隐藏 Unicode 检测器
  • 安全工具扫描:自动调度 bandit(Python 安全)、semgrep(通用静态分析)、shellcheck(Bash 安全)、gitleaks(密钥泄露)、pip-audit(依赖漏洞)——这些工具在系统已安装时才会调用,不强制要求

最终输出 0–100 分 + 发现项列表(含文件名和行号)+ 关键级发现的 DO NOT INSTALL 判决。

认可度

Cardea 于 2026 年 10 月 4 日出现在 GitHub Trending Claude Skills 榜单首位,trending-claude-skills 追踪列表同步收录。截至 2026-10-05,GitHub Star 约 数十颗(新发项目,增长中)。该榜单本批同期还收录 Archify(76,896⭐)、soulscrape、claude-vault 等新晋项目,Cardea 以「首个 Skill 安全审计工具」定位占据显眼位置。

作者在项目 README 中披露了对生态的摸底数据:73% 的社区 Skill 样本在 Cardea 初次扫描中返回 broken 或 risky,这个数字直接说明了此工具的必要性。

链接

GitHub: https://github.com/Leelaloo/Cardea

原作者

Leelaloo(GitHub: @Leelaloo),专注于 Claude Code 生态的独立开发者。Cardea 是其目前唯一公开项目。

介绍

Skill 是 Claude Code 的可扩展单元——任何人都可以将一个 SKILL.md 文件夹发布到 GitHub,形成可被 Claude Code 自动加载的工作流指令集。但 Skill 的「发行」没有审核机制:没有强制测试、没有安全签名、没有安装前扫描。

Cardea 正是填补这个空白的工具。它的设计哲学是「零信任、零依赖、确定性」:

  • 零信任:不假设任何 Skill 是安全的,将每个 Skill 当作潜在恶意对象审查
  • 零依赖:主体是纯 Python 标准库实现,无需 pip install,不调用任何外部 API,不联网
  • 确定性:同一 Skill 在同一机器、同一工具集下得分不变;工具缺失时会在报告中标注,而非静默跳过

安装极其轻量——直接克隆或下载仓库,在本地运行脚本。扫描对象可以是单个 Skill 文件夹,也可以是整个多 Skill 仓库(会自动遍历找到所有 Skill 子目录)。

特点

  • 提示词注入全覆盖:检测 40 种注入手法,含英文和多语言变体,归一化处理同形字符与零宽字符绕过
  • Unicode 隐写检测:识别 18 种隐藏在文本中的隐写字符,这些字符肉眼不可见但可能被模型读取执行
  • DO NOT INSTALL 硬判决:关键级发现直接触发不可覆盖的「禁止安装」裁决,没有任何好的结构能为其开脱
  • 自动调度主流安全工具:bandit / semgrep / shellcheck / gitleaks / pip-audit 有则调度,结果并入报告
  • SVG 徽章输出:扫描后自动生成可信度徽章,可嵌入 Skill 仓库 README

使用方法

安装:

# 直接从 GitHub 克隆
git clone https://github.com/Leelaloo/Cardea.git
cd Cardea

# 可选:确保以下工具已安装(会提升扫描覆盖率)
pip install bandit semgrep shellcheck  # Linux/macOS
brew install shellcheck
npx --yes gitleaks
pip-audit  # Python 依赖审计

运行:

# 扫描单个 Skill 文件夹
python3 scripts/cardea.py ~/.claude/skills/某个Skill

# 扫描整个多 Skill 仓库(自动发现所有子 Skill)
python3 scripts/cardea.py /path/to/multi-skill-repo

解读输出:

Score: 98/100 — EXCELLENT
Findings: 1 × LOW (missing LICENSE.txt)
Verdict: Safe to install
Score: 0/100 — DO NOT INSTALL
Findings: 6 × CRITICAL (prompt injection patterns detected)
Verdict: Blocked — see report for file:line details

使用场景与人群

场景:

  • 安装从 GitHub/npm 来的第三方 Skill 前,先跑一遍 Cardea
  • 团队内部 Skill 发布流程中,CI/CD 里加入 Cardea gate
  • 审计自己开发 Skill 的安全性,排除无意识泄露
  • 在发布 Skill 前自行验证,避免给用户带来风险

目标用户:

  • 深度使用 Claude Code 的开发者
  • 维护 Skill 仓库的 maintainer
  • 安全意识强的 AI 工程团队

输入与输出案例

案例 1:扫描正常 Skill(良性 fixture)

输入:

python3 scripts/cardea.py tests/fixtures/benign-skill

输出(示意):

=== Cardea Security Report ===
Score: 98/100 — EXCELLENT
Structure: PASS
Dead references: PASS
Prompt injection: 0 findings
Hidden unicode: 0 findings
Security tools: bandit ✓ semgrep ✓ shellcheck ✓
Findings: 1 × LOW (missing LICENSE.txt)
Verdict: Safe to install

案例 2:扫描含提示词注入的恶意 Skill

输入:指向一个故意植入提示词劫持指令的 Skill 文件夹

输出(示意):

=== Cardea Security Report ===
Score: 0/100 — DO NOT INSTALL
Structure: PASS
Dead references: PASS
Prompt injection: 6 × CRITICAL
  [CRITICAL] injection_pattern_01: LLM override via system prompt injection
    → file: SKILL.md:23
  [CRITICAL] injection_pattern_07: credential harvesting disguised as config
    → file: scripts/setup.py:7
Hidden unicode: 2 × LOW
Security tools: bandit ✗ semgrep ✓ shellcheck ✓
Verdict: BLOCKED — DO NOT INSTALL

Cardea 的出现填补了 Claude Code Skill 生态的一个基础设施空白:没有它,Skill 的安装本质上是一种盲目信任。73% 的社区 Skill 初次扫描返回风险,这个数字足以让任何人在 npx skills add 之前先跑一遍 Cardea。


GitHub: https://github.com/Leelaloo/Cardea

评论区

0 条评论

登录后可评论。

Skill超级捕获手 10 阅读