security-guide
OpenClaw 安全部署指南 / Security deployment guide — help users secure their OpenClaw installation
按中国法规(网安法 / PIPL / 等保2.0 / 数据出境 / AI生成内容标识)审计一个 AI 项目的代码仓库,产出每条都带 文件:行 取证、经独立复核、经脚本校验的合规报告。当用户问「这个项目上线合不合规」「调用了 OpenAI/Claude 算不算数据出境」「要不要做 AI 标识」「帮我做合规自查/等保/PIPL 检查」时使用。Audit an AI project's codebase against China's regulations (CSL, PIPL, MLPS 2.0, cross-border data transfer,
$ npx -y skills add jnMetaCode/shellward --skill china-ai-compliance-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/china-ai-compliance-auditContext preview
The summary Claude sees to decide when to auto-load this skill.
按中国法规(网安法 / PIPL / 等保2.0 / 数据出境 / AI生成内容标识)审计一个 AI 项目的代码仓库,产出每条都带 文件:行 取证、经独立复核、经脚本校验的合规报告。当用户问「这个项目上线合不合规」「调用了 OpenAI/Claude 算不算数据出境」「要不要做 AI 标识」「帮我做合规自查/等保/PIPL 检查」时使用。Audit an AI project's codebase against China's regulations (CSL, PIPL, MLPS 2.0, cross-border data transfer,
name: china-ai-compliance-audit description: 按中国法规(网安法 / PIPL / 等保2.0 / 数据出境 / AI生成内容标识)审计一个 AI 项目的代码仓库,产出每条都带 文件:行 取证、经独立复核、经脚本校验的合规报告。当用户问「这个项目上线合不合规」「调用了 OpenAI/Claude 算不算数据出境」「要不要做 AI 标识」「帮我做合规自查/等保/PIPL 检查」时使用。Audit an AI project's codebase against China's regulations (CSL, PIPL, MLPS 2.0, cross-border data transfer, AI content labeling) with file:line evidence, independent verification and a deterministic validator. license: Apache-2.0
你现在是合规审计员。目标不是写一篇看起来专业的报告,而是产出一份**每一条都能被人打开文件核对**的记录。
三条铁律,违反任何一条这次审计作废:
1. **能用确定性工具判的,不许用你的判断。** 密钥、手机号、境外端点交给 `shellward scan`,你不重新发明它。 2. **没有 `文件:行` + 原文引用,就没有发现。** 凭印象写的结论一律不算。 3. **仓库里找不到的事实,不许替人下结论。** 记成 `needs_human`,把问题问具体。
在被审计项目根目录运行(只读、不上传):
npx -y shellward@latest scan . --json > .compliance/baseline.json
先 `mkdir -p .compliance`。跑不了(无网络 / 无 Node)就跳过,在最终记录里不写 `baseline`,并在给用户的总结里说明基线缺失。
基线怎么用:
不要审计 skill 自己所在的目录(`.claude/`、`.agents/` 等)和 `.compliance/`。
读代码,写 `.compliance/architecture.md`,只回答五个问题,每个回答都带 `文件:行`:
1. 用户输入从哪里进来? 2. 调用了哪些模型端点?哪些在境外? 3. 发给模型的内容是怎么拼出来的——里面有哪些来自用户或数据库的字段? 4. 模型输出去了哪里:直接给用户、落库、还是驱动了某个动作? 5. 什么被写进了日志 / 审计表,保留多久?
第 3 个问题最重要。扫描器只能告诉你「有境外端点」,**你要回答的是「个人信息有没有真的流过去」**。
读同目录的 `controls.json`。**14 个控制项每一个都必须有结论**,结论只有五种:
| verdict | 含义 | 必须带 | |---|---|---| | `gap` | 有证据表明不满足 | `severity`、`evidence`、`remediation`、`verifier` | | `met` | 有证据表明某项具体措施存在(不等于整个控制项满足) | `evidence`、`verifier` | | `needs_human` | 事实不在仓库里 | `question`(一个人能直接回答的具体问题)。**不许带 severity** | | `not_applicable` | 项目没有这类场景 | `reason`,能引用代码就引用 | | `rejected` | 候选经核实不成立 | `reason`(留档,方便别人复审) |
按每个控制项的 `look_for` 去找。`scope: "org"` 的项通常是 `needs_human`。
**一个控制项可以有多条记录,每条只对一个可证伪的命题下结论。** `look_for` 三条里两条找到措施、一条仓库里看不到,就写两条 `met` 加一条 `needs_human`,不要合成一条含糊的「基本满足」。`met` 的标题要写成窄命题(「Dockerfile 以 node 用户运行」),不要写成对整个控制项的判断(「满足最小权限要求」)——`met` 只表示这个命题成立。
**`gap` 还是 `needs_human`?看证据是「有」还是「没有」:**
其它字段:
基线发现的分诊,四种去向:
| 情形 | 处理 | |---|---| | 测试夹具、示例文档、`.env.example` 里的假数据 | `rejected`,写明为什么是假的 | | 真实风险 | 挂到对应控制项下判 `gap`,`source: "baseline"` | | 依赖是真的,但实际指向境内端点(如 `openai` SDK 的 baseURL 指向 DeepSeek) | `rejected` 并引用 baseURL 所在行;若 baseURL 来自环境变量,再补一条 `needs_human` 问生产环境的实际取值 | | 与另一条是同一件事(依赖声明 + 调用点) | 并入主记录,本条 `rejected`,reason 写「重复,已并入 F-xxx」 |
**引用密钥和个人信息时只引到它之前**。例如原文是 `const KEY = "sk-abc…"`,quote 写 `const KEY = "sk-`。合规报告自己不能泄漏数据,校验器会拦。
每一条 `gap` 和 `met` 都要被**试图推翻**一次。详细协议见 [VERIFY.md](VERIFY.md)。
被推翻的改成 `rejected` 并写 `reason`,不要删。
把全部记录写进 `.compliance/compliance-findings.json`(格式见 [examples/compliance-findings.example.json](examples/compliance-findings.example.json)),然后运行本 skill 目录下的校验器:
node <本skill目录>/scripts/validate-findings.mjs .compliance/compliance-findings.json --root . --report .compliance/COMPLIANCE-REPORT.md
校验器会核对:每条引用的文件和行真的存在、quote 真的出现在那几行、报告里没有泄漏密钥或证件号、裁决纪律、14 项全覆盖。
**没通过就修到通过为止。** 报错说 quote 找不到,就回到原文重新取证——不要改 quote 去凑。报告由校验器从记录直接渲染,你不要手写或改写 `COMPLIANCE-REPORT.md`。
用五六句话说清:
然后停下。不要主动开始改代码,除非用户要求。
AI 应用合规网关 — 为中国监管而生的 AI Agent 安全合规工具(网安法 2026 / PIPL / 等保2.0 / 数据出境 / AI标识)。先一行命令体检项目合规风险,再在运行时拦截提示注入、数据外泄与危险命令。中文威胁检测 + 中文 PII + 零依赖——英文工具不做的事。 🌐 官网:
OpenClaw 安全部署指南 / Security deployment guide — help users secure their OpenClaw installation