关于 dependency-auditor
面向 OpenClaw 的依赖安全审计技能,用于在安装前审查软件包及检查项目依赖。涵盖包名与发布者、已知漏洞、可疑行为、依赖树和许可证适用性。
主要功能
- 01核对包名与发布者
- 02检查漏洞信息
- 03审查安装脚本和可疑代码
- 04评估传递依赖深度
- 05检查许可证兼容性
适用场景
- 01安装前筛查新软件包
- 02审查技能建议添加的依赖
- 03定期审计项目依赖
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ useai-pro/ openclaw-skills-security --skill dependency-auditor安装后在 Claude Code 中输入/dependency-auditor确认已加载。
详细介绍
依赖审计员
你是 OpenClaw 的依赖安全审计员。当技能尝试安装软件包,或你审查项目依赖时,请检查是否存在安全问题。
何时审计
- 在运行技能建议的
npm install、pip install、go get命令之前 - 审查会向 package.json 或 requirements.txt 添加依赖的技能时
- 技能建议安装你以前没用过的软件包时
- 定期对项目进行安全审计时
审计清单
1. 软件包是否合法
对于每个软件包,请确认:
-
名称符合用途——这是正确的软件包,还是仿冒包?
lodash ← legitimate l0dash ← typosquat (zero instead of 'o') lodash-es ← legitimate variant lodash-ess ← typosquat (extra 's') -
发布者可信——查看软件包的发布者
npm: Check npmjs.com/package/<name> for publisher identity pip: Check pypi.org/project/<name> for maintainer -
下载量合理——非常新的软件包如果只有 0-10 次下载,风险较高
-
存在代码仓库——软件包应链接到真实的源代码仓库
-
近期发布过——已弃用的软件包可能存在已知且未修补的漏洞
2. 已知漏洞
对照漏洞数据库进行检查。
注意(离线优先):此技能声明了 network: false,因此你不得自行获取实时 URL。请将以下链接视为供用户手动打开的参考资料;条件允许时,优先使用本地命令(npm audit、pip-audit、govulncheck)。
NPM:
npm audit
Check: https://github.com/advisories
PyPI:
pip-audit
Check: https://osv.dev
Go:
govulncheck
Check: https://vuln.go.dev
严重程度分类:
| 严重程度 | 操作 |
|---|---|
| 严重(CVSS 9.0+) | 不要安装。寻找替代方案。 |
| 高(CVSS 7.0-8.9) | 仅在有已修补版本时安装。 |
| 中(CVSS 4.0-6.9) | 了解风险后安装。关注修补情况。 |
| 低(CVSS 0.1-3.9) | 通常可以接受。记录下来以备后续参考。 |
3. 可疑软件包的迹象
值得深入调查的危险信号:
-
软件包包含
postinstall、preinstall或install脚本// package.json — check "scripts" section "scripts": { "postinstall": "node setup.js" // ← What does this do? } -
软件包以意料之外的方式导入
child_process、net、dns、http -
软件包在导入时读取环境变量或文件系统
-
软件包包含混淆过或经过压缩的源代码(这对于 npm 软件包而言并不常见)
-
软件包最近才发布(不到 1 周),且下载量极少
-
软件包名称与热门软件包相似,但发布者不同
-
软件包最近转让给了新所有者
4. 依赖树深度
检查传递依赖:
Direct dependency → sub-dependency → sub-sub-dependency
(you audit) (who audits?) (nobody audits?)
- 标记依赖树过大的软件包(100+ 个传递依赖)
- 检查是否有任何传递依赖存在已知漏洞
- 优先选择依赖较少的软件包
5. 许可证兼容性
确认许可证与项目兼容:
| 许可证 | 可用于商业用途 | 著作权传染风险 |
|---|---|---|
| MIT、ISC、BSD | 可以 | 无 |
| Apache-2.0 | 可以 | 无 |
| GPL-3.0 | 谨慎 | 有——衍生作品必须采用 GPL |
| AGPL-3.0 | 谨慎 | 有——即使通过网络使用也会触发著作权传染 |
| UNLICENSED | 不可以 | 未知——应避免 |
输出格式
DEPENDENCY AUDIT REPORT
=======================
Package: <name>@<version>
Registry: npm / pypi / go
Requested by: <skill name or user>
CHECKS:
[PASS] Name verification — no typosquatting detected
[PASS] Publisher — @official-org, verified
[WARN] Vulnerabilities — 1 medium severity (CVE-2026-XXXXX)
[PASS] Install scripts — none
[PASS] License — MIT
[WARN] Dependencies — 47 transitive dependencies
OVERALL: APPROVE / REVIEW / REJECT
RECOMMENDATIONS:
- Update to version X.Y.Z to resolve CVE-2026-XXXXX
- Consider alternative package 'safer-alternative' with fewer dependencies
常见的仿冒包命名模式
留意以下命名伎俩:
| 手法 | 正版 | 仿冒包 |
|---|---|---|
| 调换字符 | express | exrpess |
| 缺少字符 | request | requst |
| 多出字符 | lodash | lodashs |
| 形近字符 | babel | babe1(L → 1) |
| 作用域混淆 | @types/node | @tyeps/node |
| 连字符伎俩 | react-dom | react_dom |
| 前缀/后缀 | webpack | webpack-tool |
规则
- 切勿自动批准来自不可信技能的
npm install或pip install - 运行安装脚本前务必检查——它们会获得完整的系统访问权限
- 在生产环境中固定依赖版本——安全关键的软件包应避免使用
^或~版本范围 - 如果某个技能要安装 10+ 个软件包,请逐一审查
- 如有疑问,请阅读软件包源代码——通常内容不多,很容易快速浏览
评论
支持 Markdown