Files
u-claw/SECURITY.md
zheng b076815171
Some checks failed
Tests / test (push) Has been cancelled
feat: 海外化改造(新加坡市场)—— 阶段 0-3
按 U-Claw-海外化改造方案.md 与 范围决策记录.md 实施。这是 fork,不回上游:
海外版删掉的正是上游的中国市场默认值。

阶段 0 地基
- 下载源全部改国际:脚本/CI 61 处 + lockfile 880 条 npmmirror URL 归零
  (lockfile 那 880 条是 npm 的 resolved 字段,脚本层参数化根本绕不过它)
- 移除 install.ps1 里三个第三方 GitHub 加速代理,bundle 改直连 + SHA256 校验
  (原来只检查"文件大于 1MB"就解压运行)
- 技能内容与分发分离:skills/manifest.json 单一来源,install.sh 1170→658 行、
  install.ps1 721→546 行,两者技能内容归零
  实测原来是三份不一致:skills-cn 完整、install.sh 约 40%、install.ps1 约 17%,
  且 7 个通用技能只有 U 盘版有 —— 一键安装的用户一个能用的技能都没有
- Node 版本三种(v22.14/16/22.1)统一,新建 NODE_VERSION 单一来源
- Config 页三份合一。portable/Config.html 用根相对路径调 API 却只从 file:// 打开,
  保存功能已静默失效两个月;现缩为 120 行重定向壳
- 测试接入 CI(此前 node --test 无人运行,所有断言形同虚设)

阶段 1 双语可用
- 浏览器侧 i18n:JSON 为源、生成经典 script(file:// 下 fetch 本地 JSON 被拦)
  语言跟盘走不跟机器走:启动器写 data/.openclaw/locale.js
- 8 处硬编码 lang="zh-CN" 归零,data-i18n 覆盖 213 处,词条 en/zh 各 279 条
- B3 单框 Key:12 张模型卡 → 一个输入框,前缀识别 provider,
  服务端 /api/test-key 发 1-token 请求实测,错误映射成人话
  Key 填错到得知:从"直到对话失败"降到 ≤1 秒
- 区域格式 SG:DD/MM/YYYY、12 小时、S$、Asia/Singapore
  (ICU 在 en-SG 下把 SGD 渲染成裸 $,与美元无法区分,故自行拼 S$)
- README 内容分叉而非翻译,§1.3 证据清单逐条清零

阶段 2 降门槛
- 启动逻辑上移 lib/start.mjs:Windows-Start.bat 220→28 行、
  Mac-Start.command 235→33 行
  修掉 Mac 侧两个 bug:控制台端口硬编码 18788(回落时打开死页)、
  微信插件从未在 Mac 上安装
- U 盘根目录 23 → 3 个可点文件,其余进 advanced/
- 首启向导:语言 → 用途(7 角色,manifest 驱动)→ 密钥,答过不再问
- 三档界面,Simple 档隐藏一切技术名词
- 自动自愈:启动失败先自查自修,修不好导出脱敏诊断包
  (Doctor 从"用户要知道去点的工具"变成后台机制)

阶段 3 技能库
- 19 个英文技能,planned 归零。sg-weather / sg-transport 的端点均实测过
- SkillHub 从 56 张手写第三方卡片改为 manifest 生成:703→125 行,中文归零

其他
- origin.json 收拢所有运行时地址,tests/origin.test.mjs 保证迁移不会漏
- portable/ 下用户可见中文归零(由断言保证)
- 82 项测试

未验证(本机无 Windows / 无 pwsh):
- install.ps1、setup.ps1 约 210 行改动从未经 PowerShell 解析器
- 完整启动路径仅在假 node + 假 openclaw 上冒烟
- 8 个 .bat 的盘根推导仅静态断言
详见 U盘实测清单.md

受阻:
- 隐藏黑窗口 —— 需代码签名证书(.vbs 已被 Windows 弃用,替代方案都要签名)
- 场景卡 —— OpenClaw 上游 Dashboard 无预填 prompt 接口
- 官网 36 条 —— 上游 2026-04-14 拆到私有仓库,无权限
2026-08-17 18:37:49 +08:00

62 lines
2.7 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.

# 安全策略 / Security Policy
感谢你关注 U-Claw 的安全性。本文档说明如何向我们报告安全漏洞,以及我们当前支持的版本。
## 报告漏洞 / Reporting a Vulnerability
**请不要在公开 issue 里发布安全漏洞细节。**
如果你发现了 U-Claw 的安全问题,请通过以下任一渠道私下联系:
- 邮件:`hefangsheng@u-claw.org`(建议附 PoC、影响范围、复现步骤
- GitHub 私密漏洞报告:在 [u-claw 仓库](https://gitea.fanghe.it.com/zhenghy/u-claw) 的 Security 标签页 → "Report a vulnerability"
我们会在 **3 个工作日内** 确认收到,并在 **14 天内** 给出初步评估。请允许我们在公开披露前修复问题。
### 报告内容建议
- 受影响的模块portable / install / bootable / u-claw-app
- 受影响的版本或 commit hash
- 触发条件、攻击面(本地 / 局域网 / 互联网)
- 复现步骤或 PoC 代码
- 你建议的缓解或修复方向
## 支持的版本 / Supported Versions
| 模块 | 版本 | 状态 |
|------|------|------|
| `portable/` | 当前 main | ✅ 接受报告 |
| `install/` (`install.sh` / `install.ps1`) | 当前 main | ✅ 接受报告 |
| `bootable/` (Linux U 盘) | 当前 main | ✅ 接受报告 |
| `u-claw-app/` Electron | 当前 main | ✅ 接受报告 |
| 历史 release tag | — | ⚠️ 仅做严重等级评估,不一定回滚补丁 |
我们暂未发布稳定版本号,所有修复直接在 main 分支推送。
## 范围 / In-Scope vs Out-of-Scope
### 在范围内(请报告)
- U-Claw 自身脚本中的命令注入、路径穿越、任意写入、代码执行
- `data/.openclaw/openclaw.json` 配置加载/写入逻辑中的注入
- 启动脚本(`Mac-Start.command` / `Windows-Start.bat` / `start.sh`
在恶意目录名/环境变量下被劫持的可能
- 一键安装 (`curl | bash` / `irm | iex`) 链路上的 MITM 风险
- Bootable USB 制作脚本生成的产物在 Linux Live 环境下的提权问题
### 不在范围内
- 上游依赖Node.js / OpenClaw / Electron / Ventoy / Ubuntu的漏洞 —
请直接报给上游项目;我们只跟踪并升级版本。
- 用户主动把自己的 API Key 写到公开仓库 / 截图泄露,不属于本项目缺陷。
- 物理接触 USB 后的所有攻击(含偷换 USB、键盘记录等属于硬件安全场景。
- 在用户已经获得 admin/root 权限的情况下能做的进一步动作。
## 致谢 / Acknowledgements
发现并负责任披露安全问题的研究者,将在修复发布的 commit message 和 release notes 中署名感谢(除非你要求匿名)。
---
> 本策略借鉴了 GitHub 推荐的开源安全披露格式,未来会随项目成熟度更新。