# 齐衡 QIHENG 安全策略

## 安全定位

齐衡是运行在编码智能体与目标代码仓库之间的交付保障执行框架。它可以读取
设计、代码、测试和证据文件，并依据宿主能力调用工具。它不是安全沙箱、密钥
管理系统、身份提供商或不可变审计存储。

内容哈希和链式台账可以发现证据漂移，但本地 SHA-256 记录本身不等于数字
签名、可信时间戳或不可抵赖证明。生产部署需要企业侧身份、密钥、权限、存储
和审批系统共同提供信任根。

## 支持版本

| 版本 | 安全维护 |
| --- | --- |
| npm `latest` | 支持 |
| 前一个次版本 | 仅处理高危问题 |
| 更早版本 | 不支持；应先升级 |

若商业协议另有约定，以协议中的维护窗口为准。

## 漏洞报告

请不要在公开议题中披露密钥、客户代码、个人信息、可利用细节或未修复漏洞。

1. 已签约客户使用合同约定的私密安全渠道。
2. 其他报告者可以在仓库创建不含敏感细节的议题，请求建立私密沟通渠道。
3. 报告应包含受影响版本、宿主、最小复现、影响范围以及已采取的缓解措施。

在没有商业服务等级协议时，维护者会尽力确认报告，但不承诺固定响应或修复
时限。生产支持目标见 [SUPPORT.md](SUPPORT.md)。

## 生产安全基线

企业在启用齐衡前至少应完成以下控制：

- 使用最小权限的专用身份运行编码智能体，不共享个人长期凭证。
- 对写文件、执行命令、网络访问、发布制品和合并代码分别授权。
- 对密钥、令牌、个人信息、客户数据和受监管内容实施输入与输出脱敏。
- 建立允许使用的模型、模型供应商、区域、数据保留和训练使用策略。
- 默认限制网络出口，只允许企业批准的模型端点、制品库和代码托管服务。
- 对高风险修改、门禁豁免、最终准入和生产发布保留人工审批。
- 将终态证明、门禁结果和日志复制到企业不可变存储，不只保存在工作区。
- 对 npm 包执行完整性、来源、依赖和恶意代码扫描后再进入私有制品库。
- 为安装、升级、卸载和策略变更保留真实操作者身份与审计记录。

齐衡安装器自身采用失败即关闭策略：安装与卸载通过带所有权的跨进程互斥锁
串行化，失联进程的锁会先隔离再恢复；写入、宿主注册和安装清单作为一个带磁盘
日志、备份哈希和启动恢复能力的文件事务执行；未受管文件默认不覆盖；受管路径
在写入和删除前同时进行词法边界与真实路径检查，以阻断父目录符号链接或目录
联接造成的越界。`--force` 只表示用户确认覆盖冲突，不会关闭路径边界检查。

## 主要威胁与控制边界

| 威胁 | 当前能力 | 企业侧仍需提供 |
| --- | --- | --- |
| 旧证据批准新代码 | 候选版本和证据内容哈希绑定 | 可信构建身份和远端保存 |
| 本地证据被修改 | 链式台账与重新校验 | 数字签名、可信时间戳、不可变存储 |
| 恶意或越权工具调用 | 技能与角色职责约束 | 宿主沙箱、权限策略、人工审批 |
| 提示注入或恶意仓库内容 | 设计源权威边界和失败即关闭门禁 | 内容隔离、模型策略、工具白名单 |
| 密钥或敏感数据外泄 | 不主动要求保存凭证 | 企业脱敏、出口控制、数据防泄漏 |
| 软件供应链污染 | 运行时包排除开发源码并执行内容检查 | 托管构建、签名、来源证明和软件物料清单 |
| 多租户数据串扰 | 项目级文件边界 | 租户隔离、身份管理和独立存储 |

## 发布安全

维护者必须执行：

```text
npm run release:check
npm test
npm run release:dual:dry-run
```

正式企业商用发布还必须通过：

```text
npm run commercial:check
```

该检查在商业许可仍为 `UNLICENSED` 且没有正式授权元数据时会阻断，防止把
技术包发布成功误判为商用条件已经满足。

## 已知边界

- 生成式模型输出可能错误，齐衡不会替代代码评审、安全测试或责任人签字。
- 当前公共 npm 发布流程不自动提供企业身份、单点登录或组织级权限控制。
- 本体 `ontology-attestation` 是内容寻址证明，不是数字签名、可信时间戳或
  身份凭证。需要密码学签名时，应由企业现有 KMS/HSM、签名服务或可信构建
  平台在齐衡之外完成。
- 未经企业集成时，齐衡不会自动满足任何法规、认证或行业合规要求。
