防范恶意Skill:SkillSpector部署与检测

介绍

SkillSpector是英伟达开发的一款开源的Skill安全扫描工具,具备以下特征:

输入形式:支持GIT仓库、URL、ZIP文件、目录、单个文件。

漏洞覆盖:进行代码白盒扫描,当前涵盖17个类别的68种漏洞模式,包括提示注入、数据泄露、权限提升、供应链、过度代理、输出处理、系统提示泄漏、内存投毒、工具滥用、恶意代理、反拒绝、触发器滥用、危险代码(AST)、污点跟踪、YARA 签名、MCP 最小权限和 MCP 工具投毒。

组件扫描:会查询OSV.dev获取实时CVE数据,对Skill涉及的相关三方组件进行CVE查询。

语义分析:可接入大模型,对Skill的文字部分进行语义安全检测。

报告输出:可输出JSON、Markdown等格式报告。

基线和假阳性机制:属于静态扫描种的概念,基线意思是第一次扫描结果进行保存形成基线,后续扫描就只报新漏洞,基线存在的不用再报了。假阳性是告诉工具在该项目下某某问题是误报,下次再扫就不会报了,当然只限于当前项目。所以基线和假阳性抑制本质都是对某某问题不再报的一种机制。

风险评分:会给一个分数,可直观的感受到当前技能的危险程度,同时也会给出明确的相关建议。

部署

这里以Windows为例,通过官方推荐的uv来安装,先确保本机装有uv环境,如果没有可通过pip安装:

bash 复制代码
pip install uv

之后通过uv来安装SkillSpector,uv也相当于是一个Python包管理工具,但因为是Rust写的,速度更快。

bash 复制代码
uv tool install git+https://github.com/NVIDIA/skillspector.git

SkillSpector除了命令行使用外,也可以作为MCP服务提供给其它平台使用,但MCP功能是一个扩展模块,需要单独安装,如果要用到MCP,则使用如下命令,下面命令会在安装SkillSpector时也安装MCP:

bash 复制代码
uv tool install --with 
'mcp<2'
 
'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'

注意这里多了一个with参数,代表uv创建虚拟环境时,往里面加了一个mcp库,且版本小于2,官方手册里面没有这个操作,多人反馈不带这个参数,后续MCP服务运行不起来,会提示缺少MCP库。

因为安装时需要用到pip和git,网络原因可能会比较慢,可以给当前终端设置下pip源和git代理,参考如下:

bash 复制代码
$env
:PIP_INDEX_URL=
"https://pypi.tuna.tsinghua.edu.cn/simple"

$env
:PIP_EXTRA_INDEX_URL=
"https://pypi.tuna.tsinghua.edu.cn/simple"

$env
:HTTP_PROXY=
"http://127.0.0.1:7897"

$env
:HTTPS_PROXY=
"http://127.0.0.1:7897"

安装后会保存在当前用户下的.local\bin目录下,会提示该目录不在环境变量中,需要手动加到环境变量。

使用

SkillSpector在检测时会通过规则去静态扫描,同时也可接入大模型进行语义分析,扫描默认是都包含,所以需要配置模型进去,这里以硅基流动为例,用的Qwen模型,配置时需要将信息加入到环境变量中,这里有点不太方便,SkillSpector目前没有一个自身的配置文件,我们这里将配置临时加一下,如果要永久生效则建议进行图形化环境变量配置,示例如下:

bash 复制代码
$env
:SKILLSPECTOR_PROVIDER=
"openai"

$env
:OPENAI_BASE_URL=
"https://api.siliconflow.cn/v1"

$env
:OPENAI_API_KEY=
"sk---"

$env
:SKILLSPECTOR_MODEL=
"Qwen/Qwen2.5-72B-Instruct"

SkillSpector检测技能的子命令是scan,后面可以跟URL、压缩包、目录等,以Openclaw自带的1password技能为例进行检测。

bash 复制代码
skillspector scan 1password

结果如下图:

可以看到扫描结果前有几个警告提示,意思是接入的Qwen模型没有在自己的清单中,因为它自身有个模型清单,里面配置了模型对应的上下文长度,如果模型没在清单里,就会按照默认128000的token来算。

这个告警不影响扫描,如果想去掉,可以去修改下清单文件,将对应模型加入进去就行,我这里全局搜索的清单文件路径是:

bash 复制代码
C:\Users\Administrator\AppData\Local\uv\cache\archive-v0\rpLznrvr3WzPs0Ou\skillspector\providers\openai

按照已有的格式将Qwen加入即可,如下图。

扫描时会将结果直接打印,我们可以把结果保存为json或markdown格式,如下示例:

bash 复制代码
skillspector.exe scan 检测目标 --format markdown --output report.md

如果不想进行大模型的语义检测,可以通过--no-llm参数来禁用语义扫描:

bash 复制代码
skillspector scan 检测目标 --no-llm

注意:同一个技能扫描多次情况下,结果可能会出现偏差,因为这种扫描不像以前的规则扫描,有就是有,没有就是没有,对于不是特别明显的恶意提示词,大模型语义判断并不能保证每次结果都一样。

批量扫描

SkillSpector也支持批量扫描,但批量功能是一个单独的模块,需要下载源码去执行,下载源码后进入项目跟目录,之后通过uv去运行python模块,命令如下(这里将两个技能以文件夹形式放到了一起):

bash 复制代码
uv run python -m contrib.batch_scan.batch_scan ./
test
 --workers 5 -f markdown --output ./report.md --no-llm

uv run代表新建一个虚拟环境去执行,这里批量扫描模块是contrib.batch_scan.batch_scan,workers用来指定线程,结果如下图:

这里不加模型分析,两个技能都是低风险,1password只报了3个问题,可见不加模型分析的情况下,问题会少很多。

MCP服务

安装MCP扩展的情况下,可以将SkillSpector作为MCP服务提供出去,现在MCP服务基本都是stdio模型,即MCP相关功能在本地,再就是http传输模式,即MCP相关功能在远程服务器,需要通过http远程调用。SkillSpector提供MCP的命令如下:

bash 复制代码
# stdio模式

skillspector mcp

# http传输模式

skillspector mcp --transport http --host 127.0.0.1 --port 8000

回到Cherry中,stdio模式下,配置很简单,命令输入skillspector,参数输入mcp即可,同时环境变量也可以加到这里,这样就不用再去命令行配置了。

之后和大模型交互时,MCP选中刚才的配置,即可使用。

另一种是http流模式,在对外提供服务的机器上运行MCP命令:

bash 复制代码
skillspector mcp --transport http --host 127.0.0.1 --port 8000

上面命令代表SkillSpector的MCP以本地8000端口对外提供服务,在Cherry中,填入对应的URL即可,这里路径是mcp,配置如下图:

注意这种模式没办法设置环境变量,因为服务在远程,效果如下,终端会打印相关的请求。

总结

工具更新的比较频繁,一些不方便的地方或者一些机制可能会随着时间有改动,后续有新功能或改动再更新。

以上就是关于SkillSpector对Skill安全进行检测的相关内容,感谢阅读。

小枣信安:专注AI安全,包括但不限于大模型安全、智能体安全、机器人安全、AI赋能网络安全等,欢迎一起学习。

相关推荐
花千树-0101 天前
Harness Marketplace 剖析系列 - 之 Claude Code:权限、安全与供应链治理
ai安全·mcp·claude code·agent安全·plugin安全·ai 供应链安全·企业ai治理
TunerT_TQ4 天前
【智能体安全治理|专栏第9期】从“一堆规则”到“数字宪法”:智能体治理的下一个阶段
java·开发语言·安全·开源治理·大模型安全·ai基础设施·智能体安全
小马9264 天前
2026年8月2日深度资讯速递:AI安全危机升级、韩股去杠杆风暴、全球秩序剧烈重构
人工智能·安全·重构·ai安全·行业分析·科技资讯·金融动态
萧青山6 天前
【AI周报(2026年7月第5周)】K3 2.8T开源+Claude逃逸PyPI:安全竞赛开打,开发者必读
微软·开源模型·ai安全·kimi k3·agent逃逸
Whoami!6 天前
D-【浅谈AI安全】之 “2026 OWASP Agentic AI Top 10”
ai安全·owasp·top 10
这是谁的博客?7 天前
【中阶·融合】如何隔离多租户 AI 推理平台的 GPU 资源:从 Namespace 到 MIG/Kata 的五层纵深防御
人工智能·ai·云原生·kubernetes·gpu·多租户·ai安全
带娃的IT创业者7 天前
深度解析:大模型供应链安全危机与Hugging Face评估漏洞实战复盘
大模型·llm·漏洞分析·hugging face·供应链安全·ai安全
kp0000017 天前
如何平衡模型输出的“有用性”和“安全性
人工智能·安全·网络安全·信息安全·ai安全
kp0000018 天前
大模型输出造成信息泄露类型
人工智能·网络安全·信息安全·ai安全