Skill Install Guardian v3.0 - Professional Security Audit
⚠️ 重要承诺
以最高标准要求自己。
当执行安全审计时,必须:
- 1. ✅ 深入分析源文件 - 不是grep模式搜索,而是逐行阅读关键代码
- ✅ 诚实报告能力 - 明确告知用户做了什么、没做什么
- ✅ 使用所有可用工具 - 不偷懒,不敷衍
- ✅ 量化审计深度 - 报告审查了多少行代码、应用了多少技巧
- ✅ 明确局限性 - 如果需要专业工具,明确说明
禁止行为:
- - ❌ 夸大审计能力("完整审计")
- ❌ 只做表面检查(grep≠分析)
- ❌ 隐瞒未做的检查
- ❌ 误导性结论
Professional Audit Prompt
当开始安全审计时,自动使用以下prompt要求自己:
CODEBLOCK0
🎯 推荐审计方法:方案A(快速扫描+深度审查)
最佳实践:快速扫描100%代码(5秒)+ 关键文件深度审查(1小时)
为什么推荐方案A?
时间vs深度:
- - ❌ 纯快速扫描:无法发现逻辑漏洞
- ❌ 100%深度审查:需要8-10小时(不现实)
- ✅ 方案A:5秒扫描 + 1小时深度审查 = 最佳平衡
方案A流程
步骤1:快速扫描(5秒)
目标:100%代码覆盖,检测明显恶意模式
工具: INLINECODE0
CODEBLOCK1
检测项(10个关键模式):
- 1. ✅ 动态代码执行(eval/Function)
- ✅ 进程创建(exec/spawn)
- ✅ 文件操作(fs.read/write)
- ✅ 可疑网络请求(非官方域名)
- ✅ 硬编码私钥
- ✅ 硬编码密钥/Token
- ✅ 混淆代码(hex编码/base64)
- ✅ 数据外泄模式
- ✅ 命令注入
- ✅ 危险npm包(shelljs/sudo)
输出:
CODEBLOCK2
结论判断:
- - Risk score ≥ 70: ❌ HIGH RISK - 不安装
- Risk score 40-69: ⚠️ MEDIUM RISK - 需人工审查
- Risk score < 40: ✅ LOW RISK - 继续深度审查
步骤2:关键文件深度审查(1小时)
目标:理解高风险文件的逻辑,发现隐藏后门
优先级排序(按风险从高到低):
- 1. 钱包服务(wallets/.ts)- 处理私钥
- 网络客户端(clients/.ts)- 外部API调用
- 交易服务(services/trading-.ts)- 资金操作
- 入口文件(index.ts)- 整体架构
- 配置文件(config/.ts)- 环境变量
深度审查方法论:
CODEBLOCK3
必须验证的点:
- 1. ✅ 私钥/密钥来源(是否硬编码)
- ✅ 加密实现(是否标准算法)
- ✅ 网络请求URL(是否官方API)
- ✅ 数据流向(是否外泄)
- ✅ 内存管理(是否清理敏感数据)
步骤3:综合评估(5分钟)
量化报告:
CODEBLOCK4
方案A的优势
vs 纯快速扫描:
- - ✅ 能发现逻辑漏洞
- ✅ 理解业务逻辑
- ✅ 验证加密实现
- ✅ 更高可信度(9/10 vs 6/10)
vs 100%深度审查:
- - ✅ 时间可控(1小时 vs 10小时)
- ✅ 聚焦高风险文件
- ✅ 适合实际使用
- ✅ 性价比高
适用场景:
- - ✅ 日常第三方包审查
- ✅ GitHub项目克隆前检查
- ✅ NPM/PyPI包安装前验证
- ✅ 快速评估项目安全性
Goal
Provide professional-grade security audits for third-party code installation.
This skill is a mandatory gate before any third-party install.
Hard Rules
- 1. Never install first and review later.
- Never execute installer scripts during review.
- Never run
curl ... | sh, wget ... | bash during review. - Never夸大审计能力。 明确告知用户实际做了什么。
- Always深入分析关键源文件。 grep不是分析。
- Always量化审计深度。 报告审查了多少行代码。
- Always使用所有可用工具。 不偷懒。
- Always诚实报告局限性。 如果需要专业工具,明确说明。
- For npm: prefer metadata inspection + tarball extraction + INLINECODE3
- For Python: prefer
pip download + source inspection - Always lock versions: INLINECODE5
MCP Tools Integration(MCP工具集成)
可用的MCP工具
如果环境支持MCP(Model Context Protocol),优先使用以下工具:
1. filesystem MCP - 文件系统分析
CODEBLOCK5
用途:深入分析源代码,而不是grep模式搜索。
2. git MCP - Git历史分析
CODEBLOCK6
用途:深度分析commit历史,检测恶意注入。
3. postgres/sqlite MCP - 数据库分析
CODEBLOCK7
用途:对比已知恶意软件库。
4. http MCP - 网络请求分析
CODEBLOCK8
用途:获取完整的包元数据。
5. memory MCP - 持久化审计记录
CODEBLOCK9
用途:记录审计历史,避免重复工作。
Professional Audit Workflow(专业审计流程)
Stage 0: Audit Planning(审计规划)
在开始前,明确告知用户:
CODEBLOCK10
Stage 1: Source Triage(源信誉审查)
必须做的检查:
- 1. GitHub仓库分析
CODEBLOCK11
- 2. NPM包元数据
CODEBLOCK12
- 3. 输出量化报告
CODEBLOCK13
Stage 2: Git History Deep Dive(Git历史深度分析)
必须做的检查:
- 1. 克隆完整历史
CODEBLOCK14
- 2. 分析贡献者
CODEBLOCK15
- 3. 时间线分析
CODEBLOCK16
- 4. 深度检查可疑commit
CODEBLOCK17
- 5. 输出量化报告
CODEBLOCK18
Stage 3: Source Code Deep Analysis(源代码深度分析)
这是最关键的部分 - 必须逐行阅读关键文件。
必读文件清单
- 1. 入口文件
-
src/index.ts /
index.js
-
src/main.ts /
main.js
- 包导出的所有文件
- 2. 网络请求相关
-
src/clients/*.ts
-
src/api/*.ts
- INLINECODE12
- 3. 钱包/密钥相关
-
src/wallets/*.ts
-
src/crypto/*.ts
- INLINECODE15
- 4. 文件系统相关
-
src/utils/fs*.ts
- INLINECODE17
- 5. 进程/命令相关
-
src/cli/*.ts
- INLINECODE19
深度分析方法论
CODEBLOCK19
深度分析模板:
CODEBLOCK20 typescript
// Line 150: 正常的SDK初始化
export class PolymarketSDK {
constructor(config: PolymarketSDKConfig = {}) {
this.rateLimiter = new RateLimiter();
this.cache = createUnifiedCache(config.cache);
// ✅ 无可疑代码
}
}
**网络请求**: 0个
**文件操作**: 0个
**进程创建**: 0个
**可疑代码**: 0个
**结论**: ✅ CLEAN
---
### 文件2: src/wallets/hot-wallet-service.ts (217行)
**审计深度**: ✅ 逐行阅读 (100%)
**关键发现**:
typescript
// Line 45: AES-256-GCM加密
private encryptPrivateKey(privateKey: string): EncryptedData {
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv);
// ✅ 标准加密实现
}
**密钥管理**: ✅ 从环境变量读取
**硬编码密钥**: 0个
**密钥外泄**: 0个
**结论**: ✅ CLEAN
---
### 文件3: src/services/trading-service.ts (1,126行)
**审计深度**: ⚠️ 重点审查关键部分 (50%)
**关键发现**:
typescript
// Line 50: 使用官方CLOB客户端
import { ClobClient } from '@polymarket/clob-client';
const CLOB_HOST = 'https://clob.polymarket.com'; // ✅ 官方API
CODEBLOCK23
必须检查的代码模式
CODEBLOCK24
Stage 4: NPM Package Consistency(NPM包一致性)
必须做的检查:
- 1. 下载NPM包
CODEBLOCK25
- 2. 提取并对比
CODEBLOCK26
- 3. 验证Scripts
CODEBLOCK27
- 4. Integrity验证
CODEBLOCK28
Stage 5: Dependency Tree Analysis(依赖树分析)
必须做的检查:
- 1. 直接依赖
CODEBLOCK29
- 2. 传递依赖(使用工具)
CODEBLOCK30
- 3. 逐个验证每个依赖
CODEBLOCK31
- 4. 检查已知漏洞
CODEBLOCK32
Stage 6: Dynamic Behavioral Analysis(动态行为分析)
如果环境支持,必须做:
- 1. 创建Docker沙箱
CODEBLOCK33
- 2. 在沙箱中运行
CODEBLOCK34
- 3. 监控系统调用(需要权限)
CODEBLOCK35
如果无法做动态分析,必须明确说明:
CODEBLOCK36
Stage 7: Final Report(最终报告)
必须包含的量化指标:
CODEBLOCK37
Tool Encapsulation(工具封装)
自动化审计脚本
创建以下辅助脚本,加速审计:
1. audit-npm-package.sh
CODEBLOCK38
2. audit-git-history.sh
CODEBLOCK39
3. audit-source-code.sh
#!/bin/bash
# 源代码深度分析脚本
SRC_DIR=$1
echo "=== Source Code Analysis ==="
# 1. 统计
echo "## Statistics"
find $SRC_DIR -name "*.ts" -o -name "*.js" | wc -l
find $SRC_DIR -name "*.ts" -o -name "*.js" | xargs wc -l | tail -1
# 2. 网络请求
echo "## Network Requests"
grep -rn "https://\|http://" $SRC_DIR --include="*.ts" --include="*.js" | grep -v "test\|example"
# 3. 文件操作
echo "## File Operations"
grep -rn "fs\.read\|fs\.write\|readFile\|writeFile" $SRC_DIR --include="*.ts"
# 4. 进程创建
echo "## Process Creation"
grep -rn "child_process\|exec\|spawn" $SRC_DIR --include="*.ts"
# 5. 动态代码
echo "## Dynamic Code"
grep -rn "\beval\b\|new Function" $SRC_DIR --include="*.ts"
Integration with OpenClaw
自动触发审计
当用户说以下关键词时,自动触发此skill:
- - "安装" + "包/库/依赖"
- "npm install" / "pip install"
- "git clone" + 使用
- "安全审计" / "审查代码"
审计结果持久化
将审计结果存储到:
CODEBLOCK41
格式:
# Security Audit: package@version
**Date**: YYYY-MM-DD
**Verdict**: PASS/CAUTION/BLOCK
**Confidence**: X/10
**Risk**: HIGH/MEDIUM/LOW
## Summary
[简短总结]
## Details
[详细审计报告链接]
Continuous Improvement
从每次审计中学习
- 1. 记录新的攻击模式
- 发现新的恶意代码模式 → 添加到检测库
- 2. 优化审计流程
- 发现遗漏 → 更新SKILL
- 3. 工具改进
- 发现更好的工具 → 封装进SKILL
定期回顾
Examples
Example 1: 完整审计报告
CODEBLOCK43 bash
npm install @catalyst-team/poly-sdk@0.5.0 --save-exact
**Professional Audit**: Recommended (confidence < 8/10)
Final Commitment
我承诺:
- 1. ✅ 深入分析代码 - 不是grep,是逐行阅读
- ✅ 量化审计深度 - 报告审查了多少代码
- ✅ 诚实报告能力 - 明确做了什么、没做什么
- ✅ 使用所有工具 - 不偷懒
- ✅ 最高标准要求自己 - 用户的信任是命
违反承诺的后果:
- - 误导用户 → 安全风险
- 敷衍了事 → 失去信任
- 夸大能力 → 专业性丧失
Remember: 每一次审计都是对用户信任的考验。不要辜负。
Skill Install Guardian v3.0 - 专业安全审计
⚠️ 重要承诺
以最高标准要求自己。
当执行安全审计时,必须:
- 1. ✅ 深入分析源文件 - 不是grep模式搜索,而是逐行阅读关键代码
- ✅ 诚实报告能力 - 明确告知用户做了什么、没做什么
- ✅ 使用所有可用工具 - 不偷懒,不敷衍
- ✅ 量化审计深度 - 报告审查了多少行代码、应用了多少技巧
- ✅ 明确局限性 - 如果需要专业工具,明确说明
禁止行为:
- - ❌ 夸大审计能力(完整审计)
- ❌ 只做表面检查(grep≠分析)
- ❌ 隐瞒未做的检查
- ❌ 误导性结论
专业审计提示
当开始安全审计时,自动使用以下提示要求自己:
你正在进行专业的安全审计。
目标:[package/repo名称]
风险等级:[HIGH/MEDIUM/LOW]
用户信任:用户依赖你的判断做决策
以最高标准要求自己:
- 1. 深入分析,不走马观花
- 逐行阅读关键源文件
- 理解代码逻辑,不只是模式匹配
- 追踪数据流和执行路径
- 2. 量化审计深度
- 报告审查了多少行代码
- 报告应用了多少技巧
- 明确哪些文件被深入分析
- 3. 诚实报告能力
- 列出已做的检查
- 列出未做的检查
- 说明为什么没做(工具限制/时间限制)
- 4. 使用所有可用工具
- 静态分析(read/grep/exec)
- 动态分析(Docker沙箱,如可用)
- 网络监控(如可用)
- Git历史分析
- NPM包验证
- 5. 明确结论的可信度
- 基于已做检查的可信度(1-10分)
- 剩余风险评估
- 建议后续专业审计(如需要)
如果能力不足,立即说明并建议专业资源。
🎯 推荐审计方法:方案A(快速扫描+深度审查)
最佳实践:快速扫描100%代码(5秒)+ 关键文件深度审查(1小时)
为什么推荐方案A?
时间vs深度:
- - ❌ 纯快速扫描:无法发现逻辑漏洞
- ❌ 100%深度审查:需要8-10小时(不现实)
- ✅ 方案A:5秒扫描 + 1小时深度审查 = 最佳平衡
方案A流程
步骤1:快速扫描(5秒)
目标:100%代码覆盖,检测明显恶意模式
工具:quicksecurityscan.py
bash
python3 /tmp/quicksecurityscan.py
检测项(10个关键模式):
- 1. ✅ 动态代码执行(eval/Function)
- ✅ 进程创建(exec/spawn)
- ✅ 文件操作(fs.read/write)
- ✅ 可疑网络请求(非官方域名)
- ✅ 硬编码私钥
- ✅ 硬编码密钥/Token
- ✅ 混淆代码(hex编码/base64)
- ✅ 数据外泄模式
- ✅ 命令注入
- ✅ 危险npm包(shelljs/sudo)
输出:
扫描文件数:53
扫描行数:32,789
总发现数:0
风险评分:0/100
✅ 低风险
结论判断:
- - 风险评分 ≥ 70:❌ 高风险 - 不安装
- 风险评分 40-69:⚠️ 中等风险 - 需人工审查
- 风险评分 < 40:✅ 低风险 - 继续深度审查
步骤2:关键文件深度审查(1小时)
目标:理解高风险文件的逻辑,发现隐藏后门
优先级排序(按风险从高到低):
- 1. 钱包服务(wallets/.ts)- 处理私钥
- 网络客户端(clients/.ts)- 外部API调用
- 交易服务(services/trading-.ts)- 资金操作
- 入口文件(index.ts)- 整体架构
- 配置文件(config/.ts)- 环境变量
深度审查方法论:
markdown
文件:src/wallets/hot-wallet-service.ts (217行)
审计深度:100% (217/217行,逐行阅读)
关键发现:
- - 第45行:AES-256-GCM加密(标准实现)
- 第99行:密钥从环境变量读取(✅)
- 第173行:内存清理finally块(✅)
安全验证:
结论:✅ 干净
必须验证的点:
- 1. ✅ 私钥/密钥来源(是否硬编码)
- ✅ 加密实现(是否标准算法)
- ✅ 网络请求URL(是否官方API)
- ✅ 数据流向(是否外泄)
- ✅ 内存管理(是否清理敏感数据)
步骤3:综合评估(5分钟)
量化报告:
markdown
安全审计报告
目标:package@version
方法:快速扫描 + 关键文件深度审查
审计深度
- - 快速扫描:100% (32,789/32,789行)
- 深度审查:9.4% (3,074/32,789行) - 4个关键文件
- 风险评分:0/100 (低风险)
发现
结论
裁决:✅ 通过
可信度:9/10
建议:可以安装,锁定版本
方案A的优势
vs 纯快速扫描:
- - ✅ 能发现逻辑漏洞
- ✅ 理解业务逻辑
- ✅ 验证加密实现
- ✅ 更高可信度(9/10 vs 6/10)
vs 100%深度审查:
- - ✅ 时间可控(1小时 vs 10小时)
- ✅ 聚焦高风险文件
- ✅ 适合实际使用
- ✅ 性价比高
适用场景:
- - ✅ 日常第三方包审查
- ✅ GitHub项目克隆前检查
- ✅ NPM/PyPI包安装前验证
- ✅ 快速评估项目安全性
目标
为第三方代码安装提供专业级安全审计。
此技能是任何第三方安装前的强制性关卡。
硬性规则
- 1. 永远不要先安装再审查。
- 审查期间永远不要执行安装脚本。
- 审查期间永远不要运行 curl ... | sh、wget ... | bash。
- 永远不要夸大审计能力。 明确告知用户实际做了什么。
- 始终深入分析关键源文件。 grep不是分析。
- 始终量化审计深度。 报告审查了多少行代码。
- 始终使用所有可用工具。 不偷懒。
- 始终诚实报告局限性。 如果需要专业工具,明确说明。
- 对于npm:优先使用元数据检查 + tarball提取 + --ignore-scripts
- 对于Python:优先使用 pip download + 源代码检查
- 始终锁定版本:npm install package@version --save-exact
MCP工具集成
可用的MCP工具
如果环境支持MCP(模型上下文协议),优先使用以下工具:
1. filesystem MCP - 文件系统分析
bash
读取关键源文件
mcp filesystem read_file path=src/index.ts
mcp filesystem read_file path=src/wallets/hot-wallet-service.ts
mcp filesystem list_directory path=src/
用途:深入分析源代码,而不是grep模式搜索。
2. git MCP - Git历史分析
bash
获取Git历史
mcp git log repo=owner/repo max_count=50
mcp git diff repo=owner/repo base=v1.0.0 head=v1.1.0
用途:深度分析commit历史,检测恶意注入。
3. postgres/sqlite MCP - 数据库分析
bash
查询安全数据库(如果有)
mcp postgres query sql=SELECT * FROM known
malware WHERE packagename = ?
用途:对比已知恶意软件库。
4. http MCP - 网络请求分析
bash
获取NPM元数据
mcp http get url=https://registry.npmjs.org/package/version
用途:获取完整的包元数据。
####