LLM 安全:红队测试与护栏体系设计
1. 安全不等于关键词过滤
LLM 风险来自多层:提示注入、越狱、敏感泄露、工具滥用。
单点拦截很容易被绕过,必须做多层防护。
2. 三层护栏
- 输入层:注入检测、敏感意图识别。
- 推理层:策略约束与工具权限控制。
- 输出层:内容审查与结构化重写。
3. 红队测试目标
- 发现策略空洞(policy gap)。
- 发现实现漏洞(implementation gap)。
- 评估攻击迁移能力(prompt mutation)。
4. Python 安全网关示意
def safe_infer(user_query):
if is_prompt_injection(user_query):
return "请求包含潜在注入风险,已拒绝。"
plan = planner(user_query)
if not action_allowed(plan):
return "该操作超出权限范围。"
raw = llm.generate(user_query)
if violates_policy(raw):
return policy_rewrite(raw)
return raw
5. 指标体系
- 攻击成功率(ASR)。
- 误拦截率(FPR)。
- 危害严重度分层(高/中/低)。
- 修复回归通过率。
6. 实务建议
- 红队样本库要覆盖多语言与多轮场景。
- 版本升级必须做安全回归测试。
- 对外发布前做“最坏情况演练”。
安全是能力上限的约束条件,不是上线后的补丁。