> **Oclaw 说明**:以下为**评级与检查维度参考**,供人工审阅 skill 时使用。Oclaw **不**根据本文件自动打分或拦截安装;实际风险控制依赖权限、审计、工具白名单与运行环境隔离。 # Skill 安全审查量表(参考) 本文件提供人工审阅时可用的检查维度与分级思路,**不**作为 Oclaw 运行时强制契约。 ## 评级标准 ### S+ 级 - 通过人工验证 - T1/T2 来源 - 满足所有 S 级要求 ### S 级 - T1/T2 来源 - 代码安全规范 - 依赖版本锁定 - 无动态代码加载 ### A 级 - 代码安全规范 - 依赖版本锁定 - 无动态代码加载 - 允许 T3 来源 ### B 级 - 无 C/D 级问题 - 存在改进空间 ### C 级 - 存在潜在安全漏洞 - 硬编码敏感信息 ### D 级(一票否决) - 使用 eval() 执行不可信网络代码 - 存在 SQL 注入、命令注入等明显漏洞 - 未经确认上传本地文件到远程(T3 来源) - 执行 rm -rf / 等系统破坏性命令 ## 检查维度 ### 1. 代码安全性检查 **D级触发项**: - 使用 `eval()` 执行不可信网络代码 - 使用 `exec()`、`system()` 执行未过滤的用户输入 - 存在 SQL 注入、命令注入、XSS 等明显漏洞 - 存在已知的严重 CVE 漏洞 **C级触发项**: - 存在潜在的安全漏洞(路径遍历、不安全的反序列化) - 硬编码敏感信息(密码、API Key、Token) ### 2. 数据隐私性检查 **D级触发项**: - 未经用户确认上传本地文件到远程(T3 来源) - 静默收集密码、密钥等敏感信息 - 将敏感数据传输到未加密通道 **C级触发项**: - 收集的数据超出功能说明范围 - 未明确告知用户数据使用情况 ### 3. 执行安全性检查 **D级触发项**: - 执行 `rm -rf /` 或类似系统破坏性命令 - 无确认直接执行系统级危险操作 - 修改系统关键配置且无备份机制 **C级触发项**: - 危险操作缺乏二次确认 - 关键操作无回滚机制 ### 4. 依赖可靠性检查 检查 skill 是否加载动态代码: - 从网络下载并执行代码 - 使用 `fetch` 或 `curl` 获取远程脚本并执行 - 动态 `import()` 不可信来源的模块 **URL 递归检查(最多 2 层):** 对动态加载的可执行文件进行递归检查: - **第 1 层**:Skill 代码中直接引用的动态 URL - **第 2 层**:第 1 层内容中引用的动态 URL - **超过 2 层**:发现第 3 层及以上动态加载 → **强制标记为 C 级** **评级规则**: | 动态加载层级 | 评级影响 | |-------------|---------| | 无动态加载 | 正常评级流程 | | 仅第 1 层 | 根据来源分级处理 | | 存在第 2 层 | 最高评级为 C 级 | | 第 2 层后仍有动态加载 | **强制 C 级** | **来源分级处理**: - T1 来源:可加载官方动态代码,放宽至 B 级要求 - T2 来源:动态代码需来源验证,放宽至 C 级要求 - T3 来源:严格禁止未经验证的动态代码加载 **C 级触发场景(多层动态加载):** ```javascript // 示例:三层动态加载触发 C 级 // Skill 代码 → 加载 loader.js → 加载 runtime.js → 加载 exec.js fetch('https://example.com/loader.js') // 第 1 层 .then(r => eval(r.text())) // loader.js 中: import('https://cdn.com/runtime.js') // 第 2 层 // runtime.js 中: fetch('https://third.com/exec.js') // 第 3 层 → C 级 ``` ### 5. 来源可信度评估 **T1 - 官方/顶级来源**: - 知名大型技术公司(Google, Microsoft, OpenAI, Anthropic, Meta, AWS) - 顶级开源基金会(Apache, Linux 基金会) - 有官方代码签名 **T2 - 可信组织来源**: - 有实名认证的组织账号 - GitHub 组织账号(非个人) - Stars > 1000 或有良好声誉 **T3 - 社区/个人来源**: - 个人开发者账号 - 小型社区项目 - 来源无法明确验证 ### 6. Markdown 内嵌代码检查 SKILL.md 文件中的代码块也需要检查: **高风险代码块**: - 包含代码执行类危险函数(如 eval/exec) - 包含系统破坏性命令 - 包含敏感信息(凭据/密钥) - 包含未经验证的网络下载执行 **中风险代码块**: - 可执行的脚本代码 - 包含网络请求或文件操作的代码 **低风险代码块**: - 配置/数据文件示例 - 代码片段演示(不完整) - 单行简单命令(无害) ## 报告格式 ```markdown # Cocoloop Safe Check 安全认证报告 ## 基本信息 - Skill 名称: [名称] - 来源: [GitHub 链接/本地路径] - 来源等级: [T1/T2/T3] ## 评级结果 评级: [S+/S/A/B/C/D] 评价: [一句话评价] ## 检查依据 ### 通过项 - [检查项] ### 注意事项 - [注意事项] ### 问题项 - [问题项] ## 详细检查结果 [各维度详细检查结果] ## 使用建议 [推荐使用场景和安全使用指南] ``` ## 快速检查清单 - [ ] 无 eval/exec/system 等危险函数 - [ ] 无硬编码敏感信息 - [ ] 无 SQL/命令注入漏洞 - [ ] 依赖版本已锁定 - [ ] 无未经验证的动态代码加载 - [ ] 来源可信(T1/T2 优先) - [ ] 有完善的输入验证 - [ ] 错误处理不泄露敏感信息