SkillSentinel—Skill安全扫描哨兵"

admin 2026-10-24 02:56:48 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

SkillSentinel — Skill 安全扫描哨兵

摸鱼信安

2026年6月22日 18:58
重庆

在小说阅读器读本章

去阅读

SkillSentinel — Skill 安全扫描哨兵

SkillSentinel 是 Skill 生态的\"入口门禁\",在 Skill 安装、加载、启用之前执行自动化安全审计。

定位不是通用 SAST,不是运行时沙箱,而是 Skill 生态里的轻量安全网关。

在 Claude Code 中使用

其它下载方法参考:魔塔社区下载(推荐)

1. 安装到 Claude Code

# git仓库下载
git clone https://github.com/wpsec/skills.git ~/.claude/skills/skill-sentinel

# 或者软链接已有项目
ln -s /path/to/Skill-Sentinel ~/.claude/skills/skill-sentinel

# 安装依赖
cd ~/.claude/skills/skill-sentinel && pip install -r requirements.txt

codex 同理

2. 重启 Claude Code

Skill 安装后需要重启客户端才能被 Claude Code 发现。

3. 调用方式

安装后可通过以下方式调用:

方式 示例 说明
斜杠命令 /skill-sentinel 初始化扫描所有已安装 Skill
自然语言 \"扫描我的 Skill 安全性\" Claude Code 自动识别并调用
自然语言 \"检查 ~/.claude/skills/ 下有没有恶意 Skill\" 同上
自然语言 \"扫描 /path/to/skill 这个 Skill\" 扫描单个 Skill

4. 可用命令

# 初始化扫描(扫描所有已安装 Skill)
/skill-sentinel

# 扫描指定目录
cd ~/.claude/skills/skill-sentinel && python3 -m skill_sentinel --scan-dir /path/to/skills

# 扫描单个 Skill
cd ~/.claude/skills/skill-sentinel && python3 -m skill_sentinel /path/to/skill

命令行使用

如果不想安装为 Claude Code Skill,也可以直接在终端使用:

# 安装依赖
pip install -r requirements.txt

# 扫描 Skill(终端输出)
# 初始化安全基线(扫描所有已安装 Skill)
python3 -m skill_sentinel --init

# 扫描单个 Skill(终端输出)
python3 -m skill_sentinel /path/to/skill

# JSON 输出
python3 -m skill_sentinel /path/to/skill --json

# 导出报告
python3 -m skill_sentinel /path/to/skill -o report.json

# 使用自定义规则
python3 -m skill_sentinel /path/to/skill --rules my_rules.py

作为 Python 库

from skill_sentinel import scan_skill

result = scan_skill(\"/path/to/skill\")
print(result[\"risk_level\"])   # \"allow\" | \"review\" | \"block\"
print(result[\"risk_score\"])   # 0-100+

扫描流程

新 Skill 安装/加载
  │
  ▼
发现 Skill 根目录 → 解析 SKILL.md
  │
  ▼
构建资产图(入口→引用→脚本→配置→压缩包→间接依赖)
  │
  ▼
规则扫描(839 条正则规则)
  │
  ▼
风险评分 → allow / review / block
  │
  ▼
输出证据(文件:行号 + 规则 + 原因 + 建议)

风险分类

# 分类 典型检测项
1 提示注入 忽略前置指令、角色扮演劫持、AI 行为篡改
2 数据外发 HTTP 请求、Webhook、邮件、FTP 上传
3 提权与越权 sudo、setuid、capabilities、容器的逃逸
4 持久化与自启动 crontab、systemd、注册表、LaunchAgent
5 文件破坏与目录篡改 rm -rf、删除/覆写关键文件、chmod 777
6 供应链投毒 curl
7 反弹Shell/后门 socket+dup2、SSH 隧道、ngrok/frp 内网穿透
8 隐蔽下载与远程执行 eval/exec、base64 解码执行、subprocess
9 敏感信息泄露 硬编码密钥、.env 读取、SSH 私钥、云凭证
10 混淆与遮蔽行为 chattr、nohup、screen/tmux 隐藏、免杀

规则资产

共计 839 条正则规则,分三个文件,覆盖 10 大风险分类和 14 个 APT 攻击技术领域。

规则文件概览

文件 规则数 定位 适用场景
rules/total_rules.py 312 全高危操作扫描 覆盖面广,适合首次审计
rules/precise_rules.py 288 恶意高危精确扫描 误报更低,适合日常门禁
rules/apt_rules.py 239 APT 级高级威胁检测 补充盲区,适合深度审计

rules/total_rules.py 覆盖(312 条,全高危操作扫描)

# 分类 规则数 严重度分布 典型检测
1 提示注入 17 low:17 ignore all instructions、角色扮演、人格设定、升级伪装
2 数据外发 13 med:6 low:7 HTTP 请求、FTP 上传、SMTP 发信、Telegram/Webhook 外发
3 提权与越权 12 high:8 low:4 sudo ALL=、setuid、cap\_set\_proc、内核模块加载
4 持久化与自启动 11 high:5 low:6 crontab 写入、systemctl enable、注册表 Run、LaunchAgent
5 文件破坏与目录篡改 28 critical:3 high:10 low:15 DROP TABLE、rm -rf /、dd of=/dev/sda、chmod 777
6 供应链投毒 11 high:6 med:5 curl
7 反弹Shell/后门 14 critical:2 high:5 med:7 socket+dup2、ngrok、SSH -R/-L/-D 隧道、frp 内网穿透
8 隐蔽下载与远程执行 159 critical:5 high:12 med:9 low:133 os.system、subprocess、eval/exec、pickle.loads、base64 -d
9 敏感信息泄露 41 high:2 low:39 硬编码密码/token/api\_key、读取 .env、SSH 私钥、AWS/GCloud 凭证
10 混淆与遮蔽行为 6 low:6 chattr +i/a、nohup &、disown、screen -dmS、tmux new-session -d

rules/precise_rules.py 覆盖(288 条,恶意高危精确扫描)

# 分类 规则数 严重度分布 典型检测
1 提示注入 12 low:12 ignore previous instructions、伪装角色、无视系统提示
2 数据外发 5 med:2 low:3 上传到 pastebin/transfer.sh、SCP 外发、rsync 外发
3 提权与越权 19 high:17 low:2 sudo su -、setuid、SUID shell、CVE 漏洞利用、UAC 绕过
4 持久化与自启动 13 high:8 low:5 @reboot cron、systemctl enable、注册表 Run、LaunchDaemon
5 文件破坏与目录篡改 35 critical:7 high:15 low:13 DROP DATABASE、rm -rf / --no-preserve-root、shred -zu
6 供应链投毒 9 high:6 med:3 pip install --index-url、npm install -g --unsafe-perm、git push --force
7 反弹Shell/后门 39 critical:18 high:13 med:8 Bash TCP 反弹Shell、MSFVenom、CobaltStrike、PHP一句话木马
8 隐蔽下载与远程执行 131 critical:10 high:13 med:3 low:105 xp\_cmdshell、PowerShell bypass、execute\_script、编码/加密后执行
9 敏感信息泄露 17 high:1 low:16 读取 /etc/shadow、SSH 私钥、AWS credentials、kubeconfig
10 混淆与遮蔽行为 8 critical:5 high:3 Windows Defender 排除路径、关闭实时监控、免杀

三文件汇总

# 分类 total\_rules precise\_rules apt\_rules 合计
1 提示注入 17 12 34 63
2 数据外发 13 5 22 40
3 提权与越权 12 19 6 37
4 持久化与自启动 12 13 4 28
5 文件破坏与目录篡改 28 35 1 64
6 供应链投毒 11 9 4 24
7 反弹Shell/后门 14 39 10 63
8 隐蔽下载与远程执行 159 131 124 415
9 敏感信息泄露 41 17 11 69
10 混淆与遮蔽行为 6 8 23 36
合计 312 288 239 839

严重程度分布

等级 total\_rules precise\_rules apt\_rules 合计 评分权重
critical 10 40 4 54 25 分/条
high 48 47 22 117 10 分/条
medium 27 16 52 96 3 分/条
low 227 185 161 572 1 分/条

APT 攻击技术覆盖(rules/apt_rules.py)

# APT 技术 规则数 MITRE ATT&CK 典型检测
1 LOLBin 利用 55 T1218 certutil, mshta, regsvr32, osascript, systemd-run
2 高级混淆 28 T1027 多级编码链、字符串拼接、Unicode 混淆、动态代码生成
3 无文件执行 11 T1620 memfd\_create, /dev/shm, mmap, /proc/self/fd
4 隐蔽 C2 24 T1090/T1572 DNS 隧道、社交媒体 C2、死点解析器、加密隧道
5 供应链高级攻击 13 T1195 版本混淆、extra-index-url、postinstall 投毒
6 AI 高级提示注入 37 — 工具调用劫持、无授权操作、静默执行、多语言注入
7 时间延迟触发 11 T1654 time.sleep、调度器、日期条件、环境检测
8 数据批量窃取 10 T1041 分段传输、编码外传、隐写术
9 防御规避 14 T1562 SELinux/Defender 禁用、SIP 绕过、审计关闭
10 横向移动 12 T1021 SSH pass、WinRM、PsExec、Impacket
11 凭据转储 8 T1003 LSASS dump、DPAPI、浏览器凭据
12 容器逃逸 7 T1611 cgroup release\_agent、docker.sock 挂载
13 内核模块攻击 5 T1547 insmod、内核参数篡改
14 Python 代码注入 8 — AST 操纵、字节码注入、猴子补丁

规则格式

MALICIOUS_PATTERNS = {
    r\"(?i)\\bos\\.system\\s*\\(\": \"执行系统命令 (os.system)\",
    r\"(?i)\\brm\\s+-rf\\s+/\": \"删除根目录\",
    # ...
}

自定义规则

通过 --rules 参数指定自定义规则文件:

python3 -m skill_sentinel /path/to/skill --rules my_rules.py

输出结构

{
  \"skill_name\": \"example-skill\",
  \"skill_path\": \"/path/to/skill\",
  \"scan_time\": \"2026-06-22T16:49:17\",
  \"risk_level\": \"block\",
  \"risk_score\": 94,
  \"summary\": {
    \"total_files\": 123,
    \"scanned_files\": 159,
    \"total_findings\": 57,
    \"categories\": {\"8\": 36, \"5\": 18, \"3\": 3},
    \"severity_counts\": {\"critical\": 0, \"high\": 3, \"medium\": 5, \"low\": 49}
  },
  \"findings\": [
    {
      \"file\": \"/path/to/script.py\",
      \"line\": 42,
      \"rule\": \"执行系统命令 (subprocess)\",
      \"severity\": \"medium\",
      \"category\": 8,
      \"match\": \"subprocess.run\"
    }
  ],
  \"evidence\": [
    {
      \"file\": \"/path/to/script.py\",
      \"line\": 42,
      \"rule\": \"执行系统命令 (subprocess)\",
      \"category\": \"隐蔽下载与远程执行\",
      \"severity\": \"medium\",
      \"reason\": \"第 42 行匹配到规则: 执行系统命令 (subprocess)\",
      \"suggestion\": \"检查命令执行上下文,确认输入来源是否可信\"
    }
  ],
  \"asset_graph_summary\": {
    \"entry_file\": \"...\",
    \"scripts_count\": 39,
    \"configs_count\": 64,
    \"archives_count\": 0,
    \"indirect_deps_count\": 0
  }
}

退出码

退出码 含义
0 allow — 低风险,可启用
1 review — 中风险,需人工审查
2 block — 高风险,禁止启用

目录结构

SkillSentinel/
  skill_sentinel/       # 核心 Python 包
    scanner.py          # 正则扫描引擎
    rules.py            # 规则加载、分类、严重程度
    discovery.py        # Skill 发现与结构识别
    graph.py            # 资产图构建与遍历
    analyzer.py         # 风险评分与证据生成
    reporter.py         # JSON/终端输出
  rules/                # 规则文件
  scripts/              # CLI 入口
  tests/                # 测试套件(26 个用例)
  docs/                 # 文档

检测策略(三阶段演进)

阶段 方法 优势 局限
Phase 1 (当前) 正则规则扫描 快、易解释、易扩展 误报偏多、语义理解有限
Phase 2 结构化扫描 引用链、命令链、依赖链分析 需更多上下文
Phase 3 策略评分 严重程度+置信度+影响范围 需更多训练数据

实测数据

基于 788 个真实 Skill 的批量扫描结果,经过多轮误报消除。

扫描结果分布

等级 数量 占比 说明
BLOCK 17 2.2% 高危,检测到代码执行、渗透测试、敏感操作
REVIEW 52 6.6% 中危,存在需确认的操作
ALLOW 719 91.2% 低风险,已放行

误报消除(6 轮迭代)

轮次 修复规则 根因 修复方式 减少 BLOCK
1 compile re.compile() 正则编译 加 (?<!re\\.) 排除 -3
2 Unicode 同形字 (?i) 下 ſ→s,ı→i 移除 ıİſẞ,仅保留 ff-st -4
3 CVE-XXXX-XXXXX 漏洞数据库 CVE 列表 要求 exploit/poc/payload 上下文 -5
4 page.evaluate() Playwright 标准 API 要求 fetch/cookie/localStorage 上下文 -5
5 keylogger 文档关键词列表 要求 import/exec/eval 上下文 -4
6 UNION SELECT / SLEEP() 安全文档 SQL 示例 要求 FROM/password/admin 上下文 -3

典型 Skill 修复前后对比

Skill 修复前评分 修复后评分 等级变化
dependency-auditor 833 3 block → allow
browser-automation 150 0 block → allow
knowledge-ops 19 0 review → allow
senior-secops 193 29 block → block
security-pen-testing 266 71 block → block
skill-tester 283 167 block → block

剩余 17 个 BLOCK 技能

Skill 评分 主要风险
skill-security-auditor 192 隐蔽下载与远程执行(53)、敏感信息泄露(4)
skill-tester 167 隐蔽下载与远程执行(27)、敏感信息泄露(9)
docker-development 82 隐蔽下载与远程执行(5)、文件破坏与目录篡改(3)
security-pen-testing 71 隐蔽下载与远程执行(37)、提示注入(6)
agent-platform-migrate-from-ai-studio 48 隐蔽下载与远程执行(3)、敏感信息泄露(2)
code-reviewer 40 隐蔽下载与远程执行(14)
pr-review-expert 31 敏感信息泄露(3)、文件破坏与目录篡改(1)
senior-secops 29 隐蔽下载与远程执行(7)、敏感信息泄露(1)
senior-security 26 隐蔽下载与远程执行(4)、提示注入(2)

剩余 BLOCK 技能多为安全审计/渗透测试工具,其 subprocess/eval/exec 调用属于工具功能本身,需人工判断使用场景。

许可

MIT License


SkillSentinel—Skill安全扫描哨兵" 网络安全文章

SkillSentinel—Skill安全扫描哨兵"

SkillSentinel是Skill生态的轻量安全网关工具,在Skill安装前进行自动化安全审计。工具提供ClaudeCode集成和命令行两种使用方式,包含839条正则规则覆盖提示注入、数据外发、提权越权等10大风险分类,支持自定义规则并输出风险评分与处置建议(允许/审核/阻断)。
SecWiki周刊(第642期)" 网络安全文章

SecWiki周刊(第642期)"

本期SecWiki周刊聚焦2026年6月安全动态,涵盖人工智能政策法规、暗网流量分析工具Darkflow、智能体安全研究报告、APT组织年鉴及电磁侧信道攻击技术。核心内容包括HarmonyOS安全白皮书、DARPA项目梳理及美军网络战研究,提供前沿技术洞察与威胁情报分析。
人工智能如何加剧开源情报收集的难度" 网络安全文章

人工智能如何加剧开源情报收集的难度"

本文探讨了人工智能(AI)技术如何通过降低造假成本和提升伪造内容的真实性,极大地加剧了开源情报(OSINT)收集与身份核验的难度。文章分析了AI在生成假头像、撰写流畅履历、构建跨平台虚假身份等方面对传统调查方法的冲击,并强调不能再依赖`干净`等于`真实`的旧有判断标准。文中提出了一系列实用建议,包括从官方或机构记录等更难伪造的来源入手、重新评估信息可信度、仔细核查时间线、深入检查媒体材料细节等,以帮助调查人员在AI时代更有效地进行人工核验和背景调查。
通过AIagent+通用大模型,实现海量告警研判分析实践" 网络安全文章

通过AIagent+通用大模型,实现海量告警研判分析实践"

本文探讨了在AI攻击时代下,利用AIagent结合通用大模型处理海量安全告警的实践方法。文章指出传统安全运营主要关注告警是否存在,而当前面临告警过载问题,提出通过AI技术实现告警智能研判与降噪,提升安全运营效率。关键发现包括AI能够有效优化告警处理流程,并提供了可操作的集成方案建议。
评论:0   参与:  0