安全边界
分清系统防谁、不防谁,哪些要企业补控制或写进合同
这一页让你分清哪些风险由系统挡住,哪些要企业自己补控制或写进合同:防谁,不防谁。系统防业务账号越权、应用漏写过滤条件、误操作与局部改删、模型输出越权,以及外联与供应链的入口;不防握有数据库管理权限的人,也不防被整条重写的留痕链。要防运维方,或要第三方能独立验证「某人确实做过」时,库内控制不够。
对手分类
「规则是数据、默认拒绝、动作留痕」是设计原则,不是控制。控制要对着具体的对手,才有东西可核对,所以先分对手。
| 对手 | 手里有什么 | 本系统防不防 |
|---|---|---|
| 业务账号 | 合法登录,权限有限 | 防:授权只问一个入口,各类写入各经命令与授权判定 |
| 应用代码缺陷 | 漏写过滤条件,或同一判据出现第二份 | 防:库层行级隔离,另有代码扫描,扫描是启发式的 |
| 不可信输入 | 模型输出、知识库文档(间接注入)、外来的权重与镜像 | 部分防:见威胁表 |
| 外部网络 | 出站外联、遥测、运维通道 | 私有部署在网络层设防 |
| 握有库管理权限的人 | 表属主、超级用户、带 BYPASSRLS 的角色,包括运维方 | 不防 |
威胁与控制
| 资产 | 威胁 | 控制 | 剩余风险 | 详见 |
|---|---|---|---|---|
| 业务数据与资金 | 业务账号越权操作 | 所有「能不能」只问一个入口;拒绝行先于允许行;缺能力、缺范围、没命中都按拒绝 | 能力在会话开始时冻结,撤权与快照之间有一段时间差 | 谁能做什么 |
| 业务数据 | 应用漏写租户或分支条件 | 库层行级隔离,按会话里的租户与工作区过滤行 | 只在应用连接库的角色不是表属主、没有 BYPASSRLS 时成立 | 同上 |
| 审批、规则与资金写入 | 绕过流程直接改表 | 各类写入各经命令与授权判定;运行时改值只经一个写入入口,改规则先批准后追加;资金流水只追加 | 表属主与超级用户能停用触发器 | 修改规则参数的唯一入口、修改一条规则 |
| 留痕 | 业务账号改删;中间被抽掉一条 | 触发器拒绝改删,业务角色收回改删权限;校验函数找出序号缺口、顺序倒置、前一条指纹不符、本条指纹不符 | 整条链重写、链尾截断,链内发现不了 | 留痕与证据链 |
| 导出与模型调用的记录 | 动作做了,记录没有 | 写不进留痕就不交付 | — | 同上 |
| 敏感数据(经营系统的模型网关) | 经模型流出,或被提示注入利用 | 调用面缺省关;白名单投影;敏感分类只走本地推理;输出按契约校验;草案一律经审批 | 被允许字段里的取值仍可能是错的;网关内输出侧只做结构校验,不扫描个人信息 | 模型能碰什么 不能碰什么 |
| 知识库问答(私有部署的模型网关) | 文档里的指令被模型当作指令(间接注入);越权检索 | 经私有部署的模型网关(TLS 与鉴权)进入检索与推理;权限过滤、模型无工具、引用校验、入库审核,均为设计要求,上线前留证据 | 这一路不经核心经营系统的模型网关,那边网关的投影与契约保证不适用;模型读得到原文,OWASP 称 RAG 与微调不能完全消除提示注入,入库审核是唯一的持续性控制 | 上线前安全核对 |
| 推理数据 | 经外联、遥测、运维通道离开机房 | 推理网段默认拒绝出站,容器转发路径一并约束;运维只走一处受控入口 | 选堡垒机入口时,承诺降为「出站受控」;推理日志里的提示词与检索片段本身是业务数据 | 私有部署概览 |
| 权重与镜像 | 外来文件带恶意代码,或被替换 | 入闸检查:校验清单、权重格式、签名、SBOM、漏洞扫描 | 用哪套工具、选哪种签名,签约前定 | 交付与验收 |
| 生产环境 | 未经授权的变更;上线出错 | 生产变更须有书面执行令;发布物不可变;回滚只回代码 | 新版本写入旧版本读不懂的数据后,不能直接回代码;备份与恢复演练按企业要求在合同中约定 | 发布与回滚 |
| 账户(口令) | 库被拖走后,口令被离线破解 | 口令哈希用 argon2 库 | 所用库的默认参数与 OWASP 最低配置一致;是否开多因素登录,按企业要求在合同中约定 | 下文 |
| 账户(会话) | 页面脚本读取会话标识 | 会话 Cookie 带 HttpOnly | 钓鱼与口令复用挡不住;会话的有效期与撤销,按企业要求在合同中约定 | 下文 |
口令这一行,OWASP 的口令存储备忘录首选 Argon2id,最低配置是 19 MiB 内存、迭代 2 次、并行度 1。argon2 库 @node-rs/argon2 的文档写明默认值恰为 19456 KiB、迭代 2 次、并行度 1,默认变体是 Argon2id。
数据边界
「数据不出机房」这句话过满。机房的边界由下面这些口子决定:运维通道,权重与更新包怎样带入,日志与备份去哪里,模型名册里登记了哪些服务。
私有部署对这些口子的做法是:推理网段默认拒绝出站,运维只走现场、介质闸口或堡垒机加录屏之一,带入的文件先过入闸检查。模型名册的结构允许登记机房外的服务,是否启用由企业评估并批准,批准之前开关保持关闭,见接入模型服务。
知识库问答经私有部署的模型网关(TLS 与鉴权)进入检索与推理,不经核心经营系统的模型网关;网关的投影与契约保证不适用于它,这一路的控制见上线前安全核对。
备份放在哪里、是否加密、恢复演练的结果,按企业要求在合同中约定。
不防什么
不防的事要写在明处,读者才知道该向谁要补充控制。
| 不防什么 | 为什么防不了 | 谁来补,怎么补 |
|---|---|---|
| 握有库管理权限的人 | 表属主可以停用触发器,超级用户和带 BYPASSRLS 的角色始终绕过行级隔离,见谁能做什么 | 企业与 SZV 约定这些角色由谁持有、访问怎样审批。私有部署的运维只走受控入口,选堡垒机时每次会话由企业审批开通并全程录屏 |
| 整条留痕链被重写,或链尾被截断 | 链内自洽,没有后继记录来对不上 | 库外锚点:周期性把最新的序号与指纹写到库外,由客户保管。它不是现有能力,有这项要求的企业,签约前列为交付条件,见留痕与证据链 |
| 模型在被允许的字段里写错取值 | 契约校验保证形状,不保证取值 | 展示文本不进判定,金额只取结构化字段;争议时靠调用留痕回查 |
| 导出文件离开系统之后的使用 | 留痕只记系统内发生的写入动作 | 企业自己的文件管理制度 |
这一节列出的,要么提给企业自己的制度,要么写进合同。
其他做法
下表每一行都锚在一个真实的设计决定上,细节在对应页。
| 做法 | 它解决什么 | 为什么不用 | 见 |
|---|---|---|---|
| 运维用常开的远程隧道 | 排障省事 | 隧道本身是出站连接,零出站再无法用测试证明 | 私有部署概览 |
| 规则与约束只写在应用代码里 | 开发快 | 应用之外的连接不经过它;SZV 放进库,另用代码扫描拦第二份判断 | 核心经营系统概览 |
| 载荷明文写进审计链 | 审计直接读到全部内容 | 个人信息进入审计,访问范围随之扩大;载荷只存指纹 | 留痕与证据链 |
| 让模型调用工具 | 模型自己查数、操作 | 模型接触私有数据、读入可能带指令的内容、又有对外动作的通道,三者凑齐 | 模型能碰什么 不能碰什么 |
与常见做法对照
标准层面的对照写在各原理页,这里不重复:授权页对照 Cedar 的性质与 NIST SP 800-53 的职责分离,留痕页对照透明日志与审计保护的控制项,模型页对照 OWASP 的大模型应用风险。
验收时可以问的问题
- 请列出谁持有数据库的属主、超级用户和
BYPASSRLS角色,这些角色的访问怎样审批、怎样留痕。 - 请现场查应用连接数据库所用的角色,核对它不是表属主、不带
BYPASSRLS。 - 需要库外锚点的,请在签约前把它列为交付条件,并约定由谁保管、多久写一次。
- 请出示口令哈希所用的库、变体和参数。
- 密钥由谁管、怎样轮换,请在合同中写明。
- 备份放在哪里、是否加密、恢复演练的结果怎样提交,请在合同中写明。
- 安全事件的检测、通报时限、处置与复盘,请在合同中写明。本站不写数值。
- 测试报告、第三方评估这类证明材料,本站不含。需要时,通过对接负责人向 SZV 提出清单。
相关页
- 谁能做什么:判定顺序、默认拒绝与行级隔离的前提。
- 留痕与证据链:链防什么、不防什么,库外锚点为什么不是现有能力。
- 模型能碰什么 不能碰什么:模型输入输出的威胁与防线。
- 责任划分:每个事项由谁决定,谁执行。