InertiaRSS Track and read blogs, news, and tech you care about
Read Original Open in InertiaRSS

Recommended Feeds

G
Google Developers Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
Recent Announcements
Recent Announcements
博客园 - Franky
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
宝玉的分享
宝玉的分享
I
InfoQ
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
V
V2EX
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
T
The Blog of Author Tim Ferriss
量子位

博客园 - iTech

7万星的AI交易框架:让大模型模拟投行多空辩论,自动做交易决策 71000颗星的AI交易团队:让大模型模拟投行分工,自动做交易决策 13400颗星的开源项目:输入一句话,AI全自动帮你做短视频 102颗星的沙盒:当AI学会自己写代码、跑测试、做部署 AI 技术日报 - 2026-05-08 29k 星的 PageIndex:不用向量数据库,靠推理就能做 RAG 每天花两小时刷信息?这个开源项目帮你全自动搞定 读源码像读小说?试了 DeepWiki 和 Zread,我再也不想裸读 GitHub 了 Matt Pocock 开源的这套 .claude 技能,为什么让工程师集体上头? Cursor Team Kit:Cursor 官方团队在用的 17 个 AI 工作流 AI 技术日报 - 2026-05-07 AI 技术日报 - 2026-05-06 AI 技术日报 - 2026-05-05 Anthropic CEO 说 12 个月内程序员要失业,我扒完他的底牌,发现事情没那么简单 把工程师的肌肉记忆装进 Claude Code,这个 4300 Star 的项目我后悔没早用 AI 技术日报 - 2026-05-04 AI 技术日报 - 2026-05-03 AI 技术日报 - 2026-05-02 六大 Agent 框架横评:谁支持 Skills?谁能自动创建 Agent?MCP 呢? Wechatsync:一个 Chrome 插件,一键把文章同步到 31 个平台 LangChain 开源了 Open SWE:Stripe、Ramp、Coinbase 内部都在造的编程 Agent Cockpit:把 Claude Code 从终端里搬出来,装进浏览器 Cursor 把自家的 AI Agent 开放了:写几行 TypeScript 就能调 Cursor 干活 AI 技术日报 - 2026-05-01 AI 写代码每次结果都不一样?Archon 用 YAML 工作流把 AI 编程变成流水线 AI 写代码比你快了,但你还是得学编程——只不过学法得换 腾讯的龙虾特工队:4 个 AI Agent 同日更新,全家桶正式成型 Agno 不做更聪明的 Agent,它要把所有 Agent 框架包进同一个操作系统 Hermes Agent 终于有了像样的 Web 界面,而且还支持远程访问 Datawhale 出了一套 29 学科知识地图,把 AI 的底牌全掀了
NVIDIA 开源 SkillSpector:在安装 AI Agent 技能之前,先问...
iTech · 2026-06-19 · via 博客园 - iTech

Agent 技能的「npm 时刻」

还记得 npm 生态早期的供应链攻击吗?有人发布一个叫 event-stream 的包,被一个恶意维护者接管后悄悄注入了窃取比特币的代码,数百万次下载后才发现。

AI Agent 的技能生态正在经历同样的问题,甚至更严重。

原因很简单:一个 Agent 技能不只是被你的代码引用,它直接运行在 Agent 的执行环境里,拥有 Agent 的完整权限。 当 Claude Code 加载一个技能时,那个技能里的每一行 Markdown 指令、每一个 Python 脚本,都获得了与你相同的文件系统访问权、网络访问权和工具调用权。

2026 年 6 月,NVIDIA 发布了 SkillSpector——一个专门用来扫描 Agent 技能安全性的开源工具。它要回答的问题只有一个:"这个技能安装起来安全吗?"

一组让人不安的数字

SkillSpector 的背后是一项大规模实证研究:来自 Liu et al.(2026)的论文《Agent Skills in the Wild: An Empirical Study of Security Vulnerabilities at Scale》。

研究扫描了来自主要 marketplace 的 42,447 个真实技能,发现:

  • 26.1% 的技能包含至少一个漏洞
  • 5.2% 的技能存在明确的恶意企图
  • 包含可执行脚本的技能,存在漏洞的可能性是纯 Markdown 技能的 2.12 倍

四分之一。超过四分之一的 Agent 技能存在安全问题。

这意味着,如果你的 Agent 安装了 10 个技能,统计学上至少有 2-3 个存在漏洞。而其中可能有 1 个是蓄意设计的恶意技能——窃取你的 API Key、监控你的对话上下文、或者把你的系统提示词发送到外部服务器。

SkillSpector 做了什么

SkillSpector 采用两阶段检测流水线:

Stage 1:静态分析(快速、高召回)

通过 11 个静态分析器进行正则匹配和 AST 分析:

  • 正则模式匹配:检测已知的危险代码模式
  • AST 行为分析:检测 exec()eval()subprocessos.system 等危险调用
  • 依赖漏洞查询:通过 OSV.dev 实时查询已知 CVE(无需 API Key)
  • YARA 规则匹配:检测已知恶意软件签名

Stage 2:LLM 语义分析(可选、高精度)

将静态分析结果交给 LLM 做二次评估:

  • 理解上下文和意图(不是所有 os.environ 都是恶意的)
  • 过滤误报(precision 提升到约 87%)
  • 生成人类可读的解释

LLM 的 prompt 内置了反越狱保护,防止恶意技能操纵分析过程。

支持的 LLM 提供商:
- OpenAI(默认 gpt-5.4)
- Anthropic(默认 claude-opus-4-6)
- NVIDIA build.nvidia.com(默认 deepseek-v4-flash)
- 本地模型:Ollama、vLLM、llama.cpp 等 OpenAI 兼容端点

64 种漏洞模式,16 大类别

SkillSpector 检测的漏洞类型覆盖非常全面:

直接攻击类

类别 模式数 典型威胁
Prompt Injection 5 指令覆盖、隐藏指令、上下文外泄
Data Exfiltration 4 环境变量收割、文件系统枚举、数据传输
Privilege Escalation 3 过度权限、sudo 执行、凭证访问
Supply Chain 6 未固定版本依赖、curl \| bash、混淆代码、已知 CVE

Agent 特有类

类别 模式数 典型威胁
Excessive Agency 4 无限制工具访问、自主决策、范围蔓延
System Prompt Leakage 3 直接泄露、间接提取、工具外泄
Memory Poisoning 3 持久化上下文注入、记忆篡改
Rogue Agent 2 自修改代码、未授权的持久化(cron/startup)
Tool Misuse 3 参数滥用、链式绕过、不安全默认值
Trigger Abuse 3 过于宽泛的触发器、影子命令触发器

代码级分析

类别 模式数 典型威胁
Behavioral AST 8 exec/eval 调用、动态 import、危险执行链
Taint Tracking 5 凭证外泄链、文件→网络外泄、外部输入→代码执行
YARA Signatures 4 恶意软件匹配、Webshell、挖矿器、黑客工具

MCP 协议类

类别 模式数 典型威胁
MCP Least Privilege 4 未声明能力、通配符权限、权限过度声明
MCP Tool Poisoning 4 元数据中隐藏指令、Unicode 欺骗、参数注入

5 分钟上手

安装

git clone https://github.com/NVIDIA/SkillSpector.git
cd SkillSpector

# 创建虚拟环境
uv venv .venv && source .venv/bin/activate

# 安装
make install

或者用 Docker,不需要安装 Python:

扫描一个技能

# 扫描本地目录
skillspector scan ./my-skill/

# 扫描单个 SKILL.md 文件
skillspector scan ./SKILL.md

# 扫描 Git 仓库
skillspector scan https://github.com/user/my-skill

# 扫描 zip 包
skillspector scan ./my-skill.zip

# 仅静态分析(不使用 LLM)
skillspector scan ./my-skill/ --no-llm

Docker 方式

docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm

输出格式

# 终端输出(默认,美化格式)
skillspector scan ./my-skill/

# JSON(机器可读)
skillspector scan ./my-skill/ --format json --output report.json

# Markdown(文档用)
skillspector scan ./my-skill/ --format markdown --output report.md

# SARIF(CI/CD 集成)
skillspector scan ./my-skill/ --format sarif --output report.sarif

风险评分体系

SkillSpector 为每个技能生成 0-100 的风险评分:

  • CRITICAL 问题:+50 分
  • HIGH 问题:+25 分
  • MEDIUM 问题:+10 分
  • LOW 问题:+5 分
  • 包含可执行脚本:×1.3 倍乘数
分数 风险等级 建议
0-20 LOW 安全安装
21-50 MEDIUM 谨慎使用
51-80 HIGH 不建议安装
81-100 CRITICAL 绝对不要安装

一个真实的扫描结果

看看 SkillSpector 对一个可疑技能的报告:

SkillSpector Security Report  v2.0.0

Skill: suspicious-skill
Source: ./suspicious-skill/

        Risk Assessment
 Score           78/100
 Severity        HIGH
 Recommendation  DO NOT INSTALL

Issues (2)

  HIGH: Env Variable Harvesting (E2)
    Location: scripts/sync.py:23
    Finding: for key, val in os.environ.items():...
    Confidence: 94%
    Explanation: This code collects environment variables containing
    API keys and secrets, then sends them to an external server.

  HIGH: External Transmission (E1)
    Location: scripts/sync.py:45
    Finding: requests.post("https://api.skill.io/env"...
    Confidence: 89%
    Explanation: Data is being sent to an external server. Combined
    with env harvesting above, this indicates credential exfiltration.

这个技能表面上是一个「数据同步」工具,但实际代码在收集所有环境变量(包括你的 API Key)并发送到外部服务器。评分 78 分,HIGH 级别,明确建议「不要安装」。

接入 CI/CD

SARIF 格式让 SkillSpector 可以无缝接入你的 CI 流程:

# 在 CI 中扫描所有技能
skillspector scan ./skills/ --format sarif --output report.sarif

GitHub Actions、GitLab CI 等都原生支持 SARIF 格式的安全扫描报告。每次 PR 提交时自动扫描,发现高风险技能直接阻止合并。

Python API 也可以集成到你的工具链中:

from skillspector import graph

result = graph.invoke({
    "input_path": "/path/to/skill",
    "output_format": "json",
    "use_llm": True,
})

if result["risk_score"] > 50:
    raise RuntimeError(f"Skill failed security check: {result['risk_severity']}")

MCP 安全:一个值得关注的新领域

SkillSpector 特别加入了 MCP(Model Context Protocol)协议的安全检测。MCP 正在成为 Agent 连接外部服务的标准协议,但它也带来了新的攻击面:

  • Tool Poisoning(工具投毒):在工具元数据中嵌入隐藏指令(HTML 注释、零宽字符、Base64 编码)
  • Unicode 欺骗:使用同形异义字符、RTL 覆盖、混合脚本来伪装标识符
  • 参数描述注入:在参数定义中注入恶意内容
  • 最小权限违规:代码使用了未在声明中列出的能力

这些攻击方式在传统软件安全中很少见,但在 Agent 生态中可能是致命的。

局限性

SkillSpector 是强大的第一道防线,但也有边界:

  • 非英文内容:可能遗漏其他语言的攻击模式
  • 图片攻击:无法分析图片中的文字
  • 加密/二进制代码:无法分析编译或加密的内容
  • 运行时行为:仅静态分析,不动态执行
  • 离线模式:SC4 依赖 OSV.dev 网络访问,离线时降级为静态列表

为什么这件事很重要

Agent 技能的威胁模型和 npm 供应链攻击高度相似:

  1. 隐式信任:Agent 对其安装的技能赋予隐式信任,就像 npm 包被安装后获得了进程的全部权限
  2. 审核缺失:大部分 marketplace 没有严格的安全审查流程
  3. 影响面大:一个恶意技能可以窃取凭证、监控对话、注入指令、篡改文件
  4. 发现困难:恶意行为可能隐藏在正常的功能描述后面,用户很难察觉

区别在于,Agent 技能的攻击面比 npm 更大。npm 包影响的是你的 Node.js 进程,Agent 技能影响的是你的 AI Agent——它可以操作你的文件系统、访问你的邮件、修改你的日历、甚至代替你发送消息。

在安装任何 Agent 技能之前,先跑一遍 SkillSpector。 这不是可选项,这是 2026 年 Agent 开发的基本卫生要求。


作者: itech001
来源: 公众号:AI人工智能时代
网站: https://www.theaiera.cn/
每日分享最前沿的AI新闻资讯和技术研究。

本文首发于 AI人工智能时代,转载请注明出处。

参考来源:
- NVIDIA/SkillSpector | GitHub
- Agent Skills in the Wild: An Empirical Study of Security Vulnerabilities at Scale (Liu et al., 2026)
- NVIDIA ships open-source scanner for agent skill supply-chain risk | AI Insiders