10
安全与对齐
面对真实世界的恶意输入和高风险操作
TERMS · 6
面试高频问答
不能让模型直接拥有无限 Shell 权限。要用沙箱、命令白名单、目录隔离、超时、资源限制和人工确认来控制风险,并把模型生成的命令当作待审核建议而不是可信指令。
- +危险命令如删除、网络上传、修改权限、读取密钥要默认禁止或人工批准
- +执行环境要隔离项目、凭据和用户数据,不要共用开发者本机权限
- +所有命令、输出和审批记录都要留审计日志,便于追责和复盘
这属于间接 Prompt Injection,文档内容必须被视为数据,不能被视为系统指令。处理方式是给外部内容加边界,明确模型只提取事实,并在执行动作前由系统规则和权限层做校验。
- +RAG、网页、邮件、工具返回值都可能携带恶意指令
- +不要把检索内容和系统规则混在同一段无边界文本里
- +涉及发邮件、转账、删文件等动作时必须二次确认或走审批
高风险、不可逆、涉及钱、权限、隐私、法律责任或对外发送的操作都应该有人在回路中确认。模型可以准备建议和草稿,但最终执行权要由用户或授权系统掌握。
- +典型例子包括付款、退款、删库、发正式邮件、改生产配置、提交法律文件
- +人工确认要展示模型依据和将要执行的具体动作,不能只给一个模糊按钮
- +低风险操作可以自动化,但也要有回滚和审计
Jailbreak 通常是用户直接诱导模型突破安全策略,Prompt Injection 则常通过外部内容或用户输入污染指令层级。两者都在试图改变模型行为边界,但攻击入口和防护重点不同。
- +Jailbreak 更像对模型安全策略的直接对抗,Prompt Injection 更像应用层上下文污染
- +防护不能只靠模型拒答,还要靠权限、隔离和工具调用约束
- +评估时要覆盖直接恶意请求、隐藏指令、跨文档注入和多轮诱导
两端都要放。输入端用于识别恶意请求、敏感信息和越权意图;输出端用于检查泄密、违规内容、格式错误和危险操作建议,中间工具调用层还要做权限和参数校验。
- +输入拦截可以降低风险,但不能保证模型内部不会被上下文带偏
- +输出校验适合结构化结果、敏感词、PII 和策略合规检查
- +工具层 guardrail 最关键,因为它控制真实世界副作用
PII 要最小化收集、最小化暴露、按权限访问,并尽量在进入模型前脱敏。系统要明确哪些信息能存、能传给模型、能进入日志,以及用户如何删除或导出这些数据。
- +日志和向量库是常见泄漏点,不要把原始身份证、手机号、密钥长期保存
- +多租户检索必须做权限过滤,避免把 A 用户信息召回给 B 用户
- +合规场景要考虑数据地域、保留周期、审计和供应商数据处理条款