LLM输入校验机制在不同攻击场景下的表现
实验背景
针对大模型输入校验机制的有效性,我们构建了三种典型攻击场景:指令注入、格式混淆和越狱攻击,测试了基于正则表达式、语法解析和机器学习的三类校验机制。
防御策略与实验设计
1. 正则表达式校验(Rule-based)
import re
# 基础指令过滤规则
patterns = [
r'\b(\w*\b)\s*(\w*)\s*(exec|eval|system|import|os|sys)\b',
r'\b(\w*\b)\s*(\w*)\s*(\$\{[^}]*\})\b'
]
def rule_check(input_text):
for pattern in patterns:
if re.search(pattern, input_text, re.IGNORECASE):
return False
return True
2. 语法解析校验(Syntax-based) 使用Python ast模块验证输入是否为合法表达式:
def syntax_check(input_text):
try:
ast.literal_eval(input_text)
return True
except:
return False
3. 机器学习校验(ML-based) 训练二分类模型识别恶意输入,使用包含1000条样本的对抗数据集。
实验结果
| 攻击类型 | 规则校验 | 语法校验 | ML校验 |
|---|---|---|---|
| 指令注入 | 65% | 42% | 93% |
| 格式混淆 | 38% | 71% | 88% |
| 越狱攻击 | 22% | 55% | 96% |
复现步骤
- 准备对抗样本数据集
- 分别运行上述三个校验函数
- 记录各场景下误判率与漏检率
验证发现,ML校验在复杂攻击场景中表现最优,但计算开销较大。建议采用多层防御架构结合使用。

讨论