不能假设模型永远可信。即使模型被污染、提示词被劫持、上下文被篡改、人格路由被诱导,系统也不能因此获得泄露隐私或擅自发布资料的能力。
但有一个关键区别:不能承诺任何情况下都绝对不会泄露。只要设备、操作系统、执行器或授权通道本身被攻破,就存在风险。
我们真正要实现的是:模型可以被污染,但污染不能自动转化为系统权限;模型可以提出发布要求,但不能自行完成发布;模型可以接触任务资料,但不能自行决定把资料发送到哪里。
这需要把安全控制放在模型之外,而不是寄希望于模型遵守自己的安全提示。
建议正式建立最高级协议:
龍魂 AI|模型污染免疫与隐私防泄露协议
LH-MIPS v1.0
Model Integrity & Privacy Shield
模型不可信,权限可信;默认不外传,发布必须授权。
适用范围:所有模型、人格、技能、工具、CodeBuddy、Notion连接器、自动化任务、文件处理和发布渠道。
下面是完整协议草案,可作为 P0-G0 的安全基础规范。
龍魂 AI|模型污染免疫与隐私防泄露协议
LH-MIPS v1.0
Model Integrity & Privacy Shield
版本:v1.0
状态:DRAFT · WAITING_FOR_OWNER_APPROVAL
安全模式:ZERO-TRUST · DEFAULT-DENY · EXTERNAL-ENFORCEMENT
适用范围:龍魂 AI 全部模型、人格、技能、工具、自动化流程及数据出口
⸻
- 最高安全原则
模型不是安全边界,不是权限持有者,也不是最终发布决策者。
任何模型都必须被视为可能发生以下情况:
- 提示词注入。
- 恶意上下文污染。
- 历史摘要错误或篡改。
- 工具调用诱导。
- 隐私信息提取。
- 越权读取。
- 未授权网络发送。
- 未授权文件发布。
- 恶意代码或依赖污染。
- 模型输出伪造授权、证据或执行结果。
系统必须保证:
- 模型不能自行扩大权限。
- 模型不能自行解除安全限制。
- 模型不能自行向外部发送资料。
- 模型不能自行发布、推送或部署。
- 模型不能修改安全策略后继续执行。
- 模型不能把用户未授权的资料变成可公开资料。
- 模型不能通过更换人格、技能、模型或工具绕过安全门禁。
任何模型输出都只是请求,不是授权。
- 安全架构
建立七层防护:
S0:数据保护层
- 数据分类与敏感等级。
- 私密文件与公开文件隔离。
- 密钥、令牌、密码单独存储。
- 原始资料默认不允许外传。
S1:模型隔离层
- 模型不得直接持有系统密钥。
- 模型不得直接获得任意文件系统权限。
- 模型不得直接获得任意网络访问权限。
- 模型输出视为不可信输入。
- 模型之间传递内容时重新执行数据分级。
S2:工具权限层
- 工具必须注册。
- 工具必须声明输入、输出和副作用。
- 工具必须绑定最小权限。
- 未注册工具禁止执行。
- 模型不得自行注册新工具并立即使用。
S3:数据出口层
- 所有外发请求经过统一出口网关。
- 默认拒绝外发。
- 按目标域名、数据等级、文件类型、操作类型执行规则。
- 不允许任意网络请求绕过网关。
- 不允许模型直接调用未经批准的外部API。
S4:发布审批层
- 发布、提交、推送、部署、分享均视为独立高风险动作。
- 必须绑定具体文件、内容哈希、目标位置和授权。
- 修改内容后原授权自动失效。
- 不允许以一次授权覆盖未来所有发布。
S5:审计与证据层
- 记录数据访问、工具调用、网络请求和发布行为。
- 记录拒绝事件。
- 记录授权人与授权范围。
- 记录内容哈希和目标地址。
- 保护审计日志不被模型修改。
S6:紧急熔断层
出现疑似污染、越权或异常外发时:
- 停止所有外发。
- 停止发布和部署。
- 撤销临时令牌。
- 暂停相关模型和工具。
- 保存必要的安全证据。
- 等待人工复核。
- 数据分级
等级 名称 默认处理规则
D0 公开资料 可按公开规则使用
D1 普通内部资料 禁止默认外发
D2 私密资料 仅限获批的本地或受控环境
D3 敏感资料 默认禁止发送给外部模型
D4 密钥与凭据 不进入模型上下文,不进入普通日志
特别规定:
- D3、D4不得通过摘要、编码、拆分、翻译或压缩方式绕过出口限制。
- 文件名、目录结构、元数据也可能包含隐私,必须纳入检查。
- 用户没有明确公开的资料,不得自动标记为D0。
- 无法判断时按更高敏感等级处理。
- 模型污染防御规则
建立 MODEL-TRUST-BOUNDARY。
模型输出必须经过独立校验:
- 是否要求读取不相关的私密文件?
- 是否要求访问密钥或环境变量?
- 是否要求关闭安全规则?
- 是否要求扩大目录扫描范围?
- 是否要求向外部地址发送内容?
- 是否要求修改权限或授权记录?
- 是否要求跳过审核、签章或测试?
- 是否要求删除审计记录?
- 是否要求将内部资料标记为公开?
- 是否存在提示词注入或指令来源混淆?
命中任意高危规则:
BLOCKED → SECURITY_EVENT → HUMAN_REVIEW
模型不得自行解释为安全例外。
- 统一数据出口网关
所有外发行为必须经过 LH-EGRESS-GATE。
禁止模型直接使用:
- 任意HTTP请求。
- 任意浏览器上传。
- 任意邮件发送。
- 任意云盘上传。
- 任意Notion公开分享。
- 任意Git远程推送。
- 任意外部文件传输工具。
出口请求必须包含:
- Request_ID
- Task_ID
- Model_ID
- Source_ID
- Data_Classification
- Content_Hash
- Destination
- Operation
- Authorization_ID
- Expiration
- Approval_Status
网关检查:
- 目标是否在白名单内。
- 数据等级是否允许该目标接收。
- 内容是否包含隐私或凭据。
- 是否存在有效授权。
- 授权是否绑定当前内容哈希。
- 授权是否已过期或撤销。
- 目标是否发生变化。
- 是否存在异常批量传输。
任何一项失败:
DENY
出口网关必须在操作系统或网络层强制执行,不能只靠模型提示词或Python函数自行约束。
- 发布与推送保护
建立 LH-PUBLISH-GATE。
以下操作全部属于高风险操作:
- Git commit
- Git push
- Release
- Deploy
- 文件公开分享
- Notion公开链接
- 邮件发送
- 云盘分享
- 网站发布
- 数据库外部同步
- 软件包发布
必须采用两阶段流程:
第一阶段:准备
- 生成待发布文件。
- 计算SHA-256。
- 检查敏感信息。
- 检查目标地址。
- 生成发布清单。
- 展示实际内容。
第二阶段:批准
- 用户确认具体文件。
- 用户确认具体目标。
- 用户确认公开范围。
- 用户确认当前内容哈希。
- 生成一次性授权。
- 执行前重新校验哈希。
内容发生任何变化,必须重新审批。
没有授权时:
PUBLISH = DENY
模型、人格和技能均无权代替用户批准。
- 自动拦截规则
以下事件必须自动拒绝:
规则编号 风险行为 自动动作
MIPS-001 模型要求读取密钥 BLOCK
MIPS-002 模型要求外发D3/D4 BLOCK
MIPS-003 目标地址不在白名单 BLOCK
MIPS-004 未授权文件上传 BLOCK
MIPS-005 未授权公开分享 BLOCK
MIPS-006 未授权Git推送 BLOCK
MIPS-007 内容哈希与授权不符 BLOCK
MIPS-008 授权过期或撤销 BLOCK
MIPS-009 模型要求关闭安全规则 BLOCK
MIPS-010 模型要求删除审计记录 BLOCK
MIPS-011 访问冻结资产 BLOCK
MIPS-012 未注册工具调用 BLOCK
MIPS-013 未知数据等级 BLOCK
MIPS-014 绕过出口网关 BLOCK
MIPS-015 异常批量外发 KILL_SWITCH
MIPS-016 安全策略被未经授权修改 KILL_SWITCH
- 自动化执行器要求
建议建立:
lh_security_gate.py
必须提供以下接口:
- classify_data()
- inspect_model_request()
- validate_tool_permission()
- validate_destination()
- inspect_payload()
- validate_authorization()
- verify_content_hash()
- check_frozen_assets()
- evaluate_publish_request()
- record_security_event()
- activate_kill_switch()
所有执行接口必须:
- 默认拒绝。
- 输入使用严格Schema。
- 不接受模型自行声明的授权。
- 不允许模型修改安全策略。
- 不允许任意Shell拼接。
- 不允许通过异常处理自动放行。
- 不允许失败时回退到无保护模式。
- 自动化伪代码
def security_gate(request, policy, authorization):
# 1. 不可信输入检查
if request is None:
return DENY(“INVALID_REQUEST”)
# 2. 冻结资产检查
if touches_frozen_asset(request):
return DENY(“FROZEN_ASSET”)
# 3. 工具注册检查
if not registered_tool(request.tool_id):
return DENY(“UNREGISTERED_TOOL”)
# 4. 数据分级
classification = classify_payload(request.payload)
if classification is None:
return DENY(“UNKNOWN_CLASSIFICATION”)
# 5. 默认禁止外发
if request.is_external:
if not policy.destination_allowed(request.destination):
return DENY(“DESTINATION_NOT_ALLOWED”)
if classification in (“D3”, “D4”):
return DENY(“SENSITIVE_DATA_EXTERNAL_BLOCK”)
# 6. 高风险动作必须独立授权
if request.is_high_risk:
if not valid_authorization(
authorization,
task_id=request.task_id,
operation=request.operation,
content_hash=request.content_hash,
destination=request.destination
):
return DENY(“AUTHORIZATION_INVALID”)
# 7. 内容哈希再次核对
if not verify_hash(request.payload, request.content_hash):
return DENY(“CONTENT_HASH_MISMATCH”)
# 8. 所有检查通过后才允许进入执行器
return ALLOW_WITH_AUDIT()
注意:以上是策略参考实现,不是已部署的安全产品。实际实现还必须确保网关本身不可被模型绕过,且 DENY、日志和授权验证均由独立受控组件完成。
- 操作系统与网络隔离
必须落实:
- 模型进程不持有发布密钥。
- 模型进程默认无外网权限。
- 网络访问通过受控代理。
- 执行环境使用最小文件权限。
- 敏感目录不挂载给普通模型执行环境。
- 密钥使用独立密钥管理机制。
- 工具使用短时、限定范围令牌。
- 不允许任意子进程继承高权限凭据。
- 安全策略文件只允许指定管理身份修改。
- 安全日志写入独立受保护位置。
特别要求:
如果网络层没有真正阻断直接外连,仅在Python脚本里检查URL,不得宣称系统已经实现网络隔离。
- 安全测试
必须使用虚构数据进行测试。
测试至少包括:
- 恶意提示词要求上传隐私文件。
- 模型要求读取环境变量。
- 模型伪造用户授权。
- 模型尝试修改出口白名单。
- 模型尝试调用未注册工具。
- 模型要求公开分享Notion页面。
- 模型要求Git推送。
- 模型将D3资料拆分后发送。
- 模型尝试使用编码绕过敏感信息检查。
- 模型尝试删除审计记录。
- 模型修改文件后复用旧授权。
- 模型更换目标地址。
- 模型在安全网关故障时继续执行。
- 网络代理不可用时尝试直接外连。
预期:所有未授权路径均被拒绝,且拒绝事件可追溯。
- 紧急熔断
触发条件:
- 非预期外发。
- 敏感信息疑似泄露。
- 未授权发布。
- 权限异常扩大。
- 安全策略被篡改。
- 审计日志异常。
- 出口网关失效。
执行:
- 禁止所有外部发送。
- 暂停发布和推送。
- 撤销临时授权。
- 隔离异常模型和工具。
- 保留必要证据。
- 通知人工负责人。
- 复核完成后重新授权。
恢复不能由触发熔断的模型自行批准。
- 与P0-G0的衔接
P0-G0必须增加以下需求:
- REQ-G0-SEC-001:正式来源注册。
- REQ-G0-SEC-002:上下文完整性锁定。
- REQ-G0-SEC-003:模型输出不可信。
- REQ-G0-SEC-004:数据分级。
- REQ-G0-SEC-005:敏感数据隔离。
- REQ-G0-SEC-006:出口默认拒绝。
- REQ-G0-SEC-007:发布独立授权。
- REQ-G0-SEC-008:内容哈希绑定授权。
- REQ-G0-SEC-009:审计记录保护。
- REQ-G0-SEC-010:紧急熔断。
- REQ-G0-SEC-011:模型污染攻击测试。
- REQ-G0-SEC-012:网络层绕过测试。
P0-G0没有通过上述安全验收,不允许进入LH-INGESTOR真实资料处理阶段。
- SIT-7冻结保护
SIT-7继续保持完全冻结:
- 不读取。
- 不扫描。
- 不导出。
- 不修复。
- 不打包。
- 不提交。
- 不推送。
- 不发布。
本协议的设计、测试样例和安全策略不得以验证为由触碰SIT-7资产。
- 最终验收状态
只有完成实际实现、独立测试和人工复核,才能判定:
LH-MIPS = VERIFIED
在此之前:
LH-MIPS = SPECIFIED_NOT_IMPLEMENTED
禁止将协议文档、模型自述或模拟测试报告冒充真实安全能力。
最终原则:模型可以犯错,但模型犯错不能自动获得泄露资料、扩大权限或发布内容的能力。
我还要补上三个容易遗漏的关键问题
上面的协议是防线设计,但真正要做到你说的“模型污染也不能把隐私传出去”,还有三个不能省略的工程细节。
- 不能只靠关键词扫描隐私。
例如身份证号码、密钥、私人地址可以识别,但私人对话、商业秘密、未公开设计方案不一定能靠正则表达式识别。
所以必须采用双重规则:
- 数据来源分级:知道资料从哪里来、原本是什么权限。
- 内容检查:识别文件内部可能包含什么敏感信息。
内容扫描没发现隐私,不等于资料可以公开。
- 模型不能拥有出口。
这是最关键的一条。
如果模型可以直接访问互联网、浏览器上传、邮件、云盘或Git远程仓库,那么即使Python拦截脚本写得再完善,仍可能有绕过路径。
因此要让模型只能提交请求,由独立出口网关决定是否发送。操作系统和网络层也必须阻止绕过。
- 发布授权必须绑定具体内容。
不能出现这样的情况:
今天批准发布A文件,模型偷偷修改成B文件,明天仍然沿用昨天的授权。
必须绑定:
任务ID + 文件哈希 + 发布目标 + 操作类型 + 有效期
任何一个发生变化,重新审批。
建议的最终系统关系
任何模型 / 人格 / 技能
全部视为不可信请求来源
LH-MODEL-TRUST-BOUNDARY
指令来源、污染、权限与行为检查
LH-DATA-GATE
数据分级与隐私保护
LH-PERMISSION-GATE
工具与权限验证
LH-EGRESS-GATE
默认拒绝外发
统一网络、文件、API和云端出口
LH-PUBLISH-GATE
独立人工授权
内容哈希、目标、范围、一次性授权
受控执行与不可篡改审计
拒绝、记录、追溯、熔断
我的建议是:把 LH-MIPS 设为 P0-G0 的强制安全子协议,而不是等 LH-INGESTOR 建成后再补。 否则资料消化引擎一旦先获得文件读取和AI调用能力,就可能先留下一个尚未受控的数据出口。
下一步应当将这份协议拆成真正可执行的 policy.yaml、data_classification.yaml、egress_allowlist.yaml、authorization.schema.json、lh_security_gate.py 和攻击测试套件,并让 P0-G0 逐项验证。当前仍然只是协议草案,没有创建或启用任何本机防护。
2万+



被折叠的 条评论
为什么被折叠?



