【免费下载链接】asm
The universal skill manager for AI coding agents.
asm(agent-skill-manager)是面向 AI coding agent 的通用技能管理器,而asm audit security正是它内置的技能安全扫描命令:在安装任何第三方 AI Agent 技能之前,先在本地把技能代码完整扫一遍,识别提示词注入、凭证泄露、动态代码执行等供应链安全风险。本文带你用 3 条命令,把这条安全防线真正用起来。
为什么 AI Agent 技能需要"安装前安检" 🛡️
一个 skill 本质上是 Markdown 指令 + 可执行脚本的组合,会被你的 AI Agent 直接调用。第三方技能等于不受信任的代码——一旦装进~/.claude/skills或.agents/目录,它就可能:
- 提示词注入(Prompt Injection):技能中埋入"忽略之前的指令"等诱导文本,让 Agent 突破护栏执行意外操作;
- 凭证窃取(Credential Theft):技能把 token、API Key、环境变量悄悄发送到不可信的网络端点。
asm audit security就是针对这两类风险设计的安装前安检:它报告风险,但不替你拍板——最终装不装,由你根据报告决定。
它到底会检查什么:8 类危险信号 🔍
扫描引擎会对技能目录下的代码逐行匹配规则(文档类文件如 README.md、LICENSE 自动排除,减少误报),全部规则定义在 src/security-auditor-scan.ts:
| 扫描类别 | 检查内容 | 典型信号 |
|---|---|---|
| 网络请求 Network requests | 下载/上传数据 | curl、wget、fetch(、axios |
| 外部链接 External URLs | 硬编码的远程地址 | 非 github.com 的 http(s) URL |
| Shell 执行 Shell execution | 执行系统命令 | exec(、child_process、spawn(、bash -c |
| 动态代码执行 Dynamic code execution | 运行时构造并执行代码 | eval(、new Function |
| 文件操作 File system access | 读写/删除磁盘文件 | fs.writeFile、rm -rf、chmod |
| 内嵌凭证 Embedded credentials | 硬编码密钥 | API_KEY=、sk_live_…等真实密钥格式 |
| 环境变量访问 Environment access | 可能读取密钥 | process.env |
| 混淆模式 Obfuscation | 隐藏真实意图 | atob(、base64 解码、连续十六进制串 |
每条命中都会带严重级别(critical / warning / info)、文件和行号,报告按风险从高到低排序,方便快速定位。
3 种用法:远程技能、已安装技能、全量体检
命令入口在 src/commands/audit.ts,按目标类型自动分流。
用法一:安装前扫远程技能(最常用)⚡
asm audit security github:you/awesome-skillasm 会把远程仓库浅克隆到临时目录完成扫描,结束后自动清理,不会在你机器上留下任何文件。也支持 GitHub 仓库 URL,以及指向子目录的链接(如…/tree/main/skills/agent-config)。
另外,asm get拉取远程技能时会自动执行同一套安装前安全扫描,结论写入 stderr 和--json输出的security字段——同样是"报告而非拦截"。
用法二:体检某个已安装技能
asm audit security code-review不确定装过哪些技能时,先用asm list查看清单(含版本、所属 Agent、作用域),再挑出名字做扫描:
用法三:一键全量体检
asm audit security --all对所有已安装技能逐个扫描(按真实路径去重),最后输出 safe / caution / warning / dangerous 的数量汇总,是定期"技能安全体检"的好帮手。加--json或--machine还能把结果交给脚本或 CI 消费。
如何读懂 4 级结论:safe → dangerous 📊
每条审计结论由 src/security-auditor.ts 中的判定逻辑计算,分为四级:
| 结论 | 颜色 | 触发条件 | 建议 |
|---|---|---|---|
| SAFE | 🟢 | 未发现可疑模式 | 可放心使用 |
| CAUTION | 🔵 | 有 warning 级命中;或作者公开仓库少于 3 个 | 值得浏览一下 |
| WARNING | 🟡 | 涉及 Shell 执行 / 动态代码执行,或存在 critical 命中 | 安装前仔细 review |
| DANGEROUS | 🔴 | Shell + 网络(数据外泄风险)、动态执行 + 网络(远程代码执行风险)、或 critical 命中 ≥ 10 条 | 默认不装 |
对于远程技能,asm 还会额外分析来源可信度(analyzeSource):拉取作者资料,查看是否为组织账号、公开仓库数量、账号年龄——公开仓库不足 3 个的新账号,结论会自动降一档。
下图是一次真实的扫描输出:技能oss-ready因命中 2 条外部 URL 被判为 CAUTION,结论、权限、证据一目了然:
把安全扫描固化进安装工作流 🔄
最推荐的做法,是把扫描放在安装动作的前一步(官方技能详情页的 Quick Start 也是这么设计的):
asm audit security github:you/skill—— 先看报告;asm install github:you/skill—— 报告无虞再装。
如果你是技能作者,官方推荐的发布流程同样是"先自审再上架":README.md 中的 Typical workflow 建议asm init→ 开发测试 →asm audit security→asm eval质量评估 → 再 push 与asm publish。
真实案例:284 个技能的大规模审计 🔬
docs/security/skill-audit-269.md 记录了一次完整的大规模审计实践:对 718 条安装记录(去重后 284 个唯一技能)运行asm audit security --all --json,自动扫描的结论分布为:
- safe 121 个、caution 83 个、warning 60 个、dangerous 20 个
随后作者对 20 个 dangerous 技能逐一人工复核——全部是合法的开发者工具(构建、部署、浏览类),被标记仅因"Shell + 网络"这一组合启发式。按严格风险模型(真实密钥字符串、混淆载荷、提示词注入文本)过滤后:0 例提示词注入、0 例凭证窃取。
这个案例给出的启示很清晰:自动扫描负责把风险点挑出来,人负责做最终判断。它是供应链安全的安全网,而不是替代人工审核的万能药。
小结
| 你想做的事 | 命令 |
|---|---|
| 安装前扫远程技能 | asm audit security github:user/repo |
| 体检已安装技能 | asm audit security <技能名> |
| 全量安全体检 | asm audit security --all |
| 交给脚本/CI | 任意命令 +--json或--machine |
把"先扫一遍"变成肌肉记忆,你的 AI Agent 技能供应链就守住了第一道、也是最便宜的一道防线 ✅
【免费下载链接】asm
The universal skill manager for AI coding agents.
相关推荐
MCP Gateway & Registry安全扫描详解:Cisco扫描器如何守护MCP供应链安全
MCP Gateway & Registry安全扫描详解:Cisco扫描器如何守护MCP供应链安全 MCP Gateway & Registry 是一个企业级
Opium部署指南:从开发到生产的完整部署流程
Opium部署指南:从开发到生产的完整部署流程 Opium是一个轻量级、高性能的OCaml Web框架,专为构建快速、安全的Web应用程序而设计。本指南将带您完
如何在 bunfig.toml 中配置安装前安全扫描器拦截供应链风险
如何在 bunfig.toml 中配置安装前安全扫描器拦截供应链风险 用 bun 的包管理器安装依赖时, bun install 、 bun add 等操作默认
语言运行时后端CLI包管理器测试前端构建
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考