第207篇:防火墙入侵防御(IPS)基础
关键词:IPS、入侵防御、特征库、入侵防御策略、攻击签名、虚拟补丁、透明IPS、性能影响
一、引言
随着网络安全威胁的日益复杂化,传统的基于端口和协议的访问控制已不足以应对零日漏洞利用、Web 应用攻击、蠕虫传播等高级威胁。入侵防御系统(Intrusion Prevention System, IPS)作为防火墙的高级安全功能,通过深度检测报文内容中的攻击特征,在网络边界实时阻断恶意流量。
IPS 功能使防火墙从"看门人"升级为"安检员"——不仅检查你是否有通行证(安全策略),还要检查你携带的物品是否危险(报文内容)。理解 IPS 的工作原理、配置方式和性能影响,是构建纵深防御体系的关键环节。
二、核心概念
2.1 IPS 的工作原理
IPS 采用基于特征库(Signature Database)的检测机制,对通过防火墙的数据包进行深度内容检查。整个过程包括四个阶段:
- 协议解析:对 HTTP、SMTP、FTP 等应用层协议进行深度解析,还原应用层载荷
- 特征匹配:将报文内容与特征库中的攻击签名逐条比对
- 异常检测:识别协议异常行为,如超长 URI、非法 TCP 标志组合
- 处置动作:匹配到攻击特征后执行阻断、告警或放行
2.2 IPS 攻击分类
华为防火墙 IPS 特征库覆盖的主要攻击类型:
| 攻击类别 | 典型攻击 | 危害级别 | 检测方式 |
|---|---|---|---|
| 系统攻击 | Buffer Overflow、远程代码执行 | 严重 | 特征匹配 |
| Web 攻击 | SQL 注入、XSS、命令注入 | 严重 | 正则匹配 |
| 蠕虫传播 | Conficker、Stuxnet 等 | 严重 | 特征匹配 |
| 信息泄露 | 目录遍历、敏感信息暴露 | 中等 | 模式匹配 |
| 网络扫描 | Nmap 扫描、端口扫描 | 低 | 行为分析 |
| DoS 攻击 | SYN Flood、UDP Flood | 严重 | 统计阈值 |
2.3 IPS 与 IDS 的区别
| 对比项 | IDS(入侵检测) | IPS(入侵防御) |
|---|---|---|
| 部署方式 | 旁路镜像 | 内联串接 |
| 检测方式 | 被动监听 | 主动检测 |
| 处置能力 | 仅告警 | 阻断+告警 |
| 延迟影响 | 无 | 微秒级延迟 |
| 漏报率 | 较低 | 较低 |
| 误报率 | 较高 | 需持续调优 |
防火墙内置的 IPS 功能采用内联部署模式,所有流量必须经过 IPS 检测引擎才能转发,因此可以实现实时阻断恶意流量。
三、技术细节
3.1 IPS 检测流水线

3.2 IPS 特征库管理
IPS 的防护能力完全依赖于特征库的完整性和时效性。华为防火墙 IPS 特征库包含:
| 特征库类型 | 内容 | 更新频率 |
|---|---|---|
| 主特征库 | 所有已知攻击签名 | 每周更新 |
| 增量特征库 | 新增漏洞签名 | 每日更新 |
| 病毒特征库 | 恶意代码特征 | 每日更新 |
| URL 特征库 | 恶意网站地址 | 实时更新 |
特征库的更新机制: - 防火墙自动连接华为 Cloud 更新服务器下载最新版本 - 支持手动上传特征库文件进行离线更新 - 特征库版本信息可通过命令行查看
3.3 IPS 性能影响
IPS 深度检测不可避免地会带来性能开销:
| 检测深度 | 吞吐量影响 | 延迟增加 |
|---|---|---|
| L3/L4 检测 | 约 10% | < 50μs |
| 应用层检测 | 约 30% | 50-200μs |
| 全内容检测 | 约 50% | 200-500μs |
为降低性能影响,华为防火墙采用硬件加速的 IPS 引擎(SecEngine),将特征匹配卸载到专用 ASIC 芯片上执行。
四、实战配置/案例分析
4.1 IPS 基础配置
# ============================================
# 步骤1:更新IPS特征库
# ============================================
# 查看当前特征库版本
display ips profile
display ips signature
# 通过Cloud更新(需联网)
ips signature update server cloud
# 或手动上传特征库文件
update ips signature file flash:/ips_signature_20240901.pkg
# ============================================
# 步骤2:创建IPS防御策略
# ============================================
ips-policy
# 创建IPS策略
policy name IPS_Strict
# 开启所有严重级别攻击的阻断
attack-severity critical action reset
attack-severity high action reset
attack-severity medium action alarm
attack-severity low action alarm
# 开启Web攻击防护
web-attack sql-injection enable action reset
web-attack xss enable action reset
web-attack command-injection enable action reset
# 开启蠕虫防护
worm enable action reset
# 开启虚拟补丁(针对已知漏洞)
vulnerability enable action reset
quit
# 创建宽松策略(用于低安全要求区域)
policy name IPS_Loose
attack-severity critical action reset
attack-severity high action alarm
attack-severity medium action pass
attack-severity low action pass
quit
4.2 IPS 与安全策略联动
# ============================================
# 在安全策略中引用IPS策略
# ============================================
security-policy
rule name Untrust_to_DMZ
source-zone untrust
destination-zone dmz
destination-address web-srv
action permit
service http https
# 关联IPS严格策略
ips-policy IPS_Strict
log-action enable
quit
rule name Untrust_to_Trust
source-zone untrust
destination-zone trust
action permit
# 关联IPS严格策略,所有入站流量深度检测
ips-policy IPS_Strict
log-action enable
quit
rule name Trust_to_Untrust
source-zone trust
destination-zone untrust
action permit
# 出站流量使用宽松IPS策略
ips-policy IPS_Loose
quit
4.3 故障案例:IPS 误报阻断正常业务
故障现象:企业上线新的 ERP 系统后,用户反馈部分页面无法打开,浏览器显示"连接被重置"。
排查过程:
- 查看 IPS 告警日志:
display ips log
# 发现大量 SQL 注入攻击告警
# 签名ID:2001-2030
# 源IP:10.1.50.100(ERP服务器)
# 目的IP:10.1.200.10(数据库服务器)
- 分析告警详情:
display ips log signature-id 2001-2030
# 告警内容显示:检测到SQL注入特征 "UNION SELECT"
# 但实际流量是ERP系统正常的数据库查询语句
-
根因分析:ERP 系统的 ORM 框架生成的 SQL 查询中包含 "UNION SELECT" 语法,被 IPS 的 SQL 注入特征规则误判为攻击。这是典型的 IPS 误报案例。
-
修复措施:
# 方法1:将误报签名加入白名单
ips-policy
policy name IPS_Strict
signature-id 2001 action pass
signature-id 2002 action pass
signature-id 2003 action pass
signature-id 2004 action pass
signature-id 2005 action pass
quit
# 方法2:配置IPS排除规则(更精确)
ips-policy
policy name IPS_Strict
exclude source-ip 10.1.50.100 destination-ip 10.1.200.10 signature-id 2001-2030
quit
- 经验总结:IPS 误报是生产环境常见问题,处理方法:
- 先分析告警详情确认是否为真实攻击
- 确认误报后将对应签名加入白名单
- 定期回顾白名单,防止过期规则降低防护能力
- 新业务上线前进行 IPS 策略兼容性测试
五、IPS进阶与扩展指南
5.1 IPS特征库签名结构详解
| 字段 | 说明 | 示例 |
|---|---|---|
| 签名ID | 唯一标识 | 2001 |
| 签名名称 | 攻击描述 | SQL Injection via UNION SELECT |
| 攻击类型 | 分类 | Web Attack > SQL Injection |
| 严重级别 | 影响程度 | High |
| 描述 | 详细攻击说明 | 检测HTTP请求中的UNION SELECT语句 |
| 协议 | 适用协议 | HTTP |
| 方向 | 检测方向 | Client-to-Server |
| 匹配模式 | 正则/字符串/字节 | 正则表达式 |
| 参考信息 | CVE/RFC编号 | CVE-2023-XXXX |
5.2 IPS处置策略分级矩阵
| 严重级别 | 入站(Untrust→Trust) | 出站(Trust→Untrust) | DMZ访问 | 说明 |
|---|---|---|---|---|
| Critical | 阻断(reset) | 告警(alarm) | 阻断(reset) | 已知漏洞利用 |
| High | 阻断(reset) | 告警(alarm) | 阻断(reset) | 高危攻击特征 |
| Medium | 告警(alarm) | 告警(alarm) | 告警(alarm) | 可疑行为 |
| Low | 告警(alarm) | 放行(pass) | 放行(pass) | 信息收集类 |
5.3 IPS检测引擎架构

5.4 IPS 误报调优方法
| 方法 | 适用场景 | 操作 | 风险 |
|---|---|---|---|
| 签名白名单 | 确定误报的签名 | 将该签名改为pass | 降低防护能力 |
| 排除规则 | 特定IP对之间的误报 | 配置源/目的IP排除 | 范围需精确 |
| 降低严重级别 | 不确定是否误报 | 将阻断改为告警观察 | 暂时不防护 |
| 签名关闭 | 长期误报且无法排除 | 关闭该签名 | 永久降低防护 |
| 精细化策略 | 不同区域不同策略 | DMZ严格/内网宽松 | 增加管理复杂度 |
# IPS误报调优完整示例
ips-policy
policy name IPS_Strict
# 方法1:签名白名单
signature-id 2001 action pass
signature-id 2002 action pass
# 方法2:排除规则(精确控制)
exclude source-ip 10.1.50.100 destination-ip 10.1.200.10 signature-id 2001-2030
# 方法3:临时降级观察
signature-id 3050 action alarm
# 方法4:按区域差异化策略
# DMZ区域使用严格策略
# 内网使用宽松策略
quit
quit
# 定期审计白名单(月度脚本)
# 导出IPS白名单签名列表,逐个确认是否仍需白名单
display ips-policy name IPS_Strict | include pass
5.5 虚拟补丁(Virtual Patch)详解
| 虚拟补丁特性 | 说明 |
|---|---|
| 定义 | 在网络边界部署的漏洞防护措施,无需在目标系统上安装补丁 |
| 原理 | IPS识别漏洞利用特征,在攻击到达目标前拦截 |
| 适用场景 | 无法及时打补丁的系统、遗留系统、第三方应用 |
| 局限性 | 仅防护已知漏洞、无法防护0-day变种、增加网络延迟 |
| 与真实补丁关系 | 临时替代方案,最终仍需安装真实补丁 |
# 虚拟补丁配置示例(针对Log4j CVE-2021-44228)
ips-policy
policy name IPS_Virtual_Patch
# Log4j JNDI注入防护
vulnerability CVE-2021-44228 enable action reset
# Spring4Shell防护
vulnerability CVE-2022-22965 enable action reset
# Apache Struts防护
vulnerability CVE-2023-50164 enable action reset
# FastAPI防护
vulnerability CVE-2024-24762 enable action reset
quit
quit
5.6 IPS性能优化方案
| 优化项 | 方法 | 效果 |
|---|---|---|
| 选择性检测 | 仅对高危区域启用IPS | 减少30-50%检测量 |
| 协议过滤 | 仅检测HTTP/SMTP等应用协议 | 减少50%检测量 |
| 硬件加速 | 启用SecEngine硬件加速 | 吞吐量提升3-5倍 |
| 签名精简 | 关闭不适用的签名 | 降低匹配延迟 |
| 会话复用 | 同一会话复用检测结果 | 减少重复检测 |
六、总结
| 知识点 | 核心要点 |
|---|---|
| IPS 原理 | 基于特征库深度检测报文内容 |
| 攻击分类 | 系统攻击、Web攻击、蠕虫、信息泄露、扫描、DoS |
| IPS vs IDS | IPS内联阻断,IDS旁路告警 |
| 特征库 | 主库/增量库/病毒库/URL库,需定期更新 |
| 配置方式 | IPS策略定义处置动作,安全策略引用IPS策略 |
| 处置动作 | 阻断(reset)、告警(alarm)、放行(pass) |
| 性能影响 | 深度检测降低吞吐量,SecEngine硬件加速缓解 |
| 误报处理 | 白名单签名或配置排除规则 |
思考
- IPS 特征库更新后,新特征立即生效还是需要重启 IPS 引擎?频繁更新特征库对防火墙性能有什么影响?
- 当 IPS 策略配置为"阻断"模式时,如果防火墙的 IPS 引擎因过载而停止检测,流量是被放行还是被丢弃?为什么?
- 虚拟补丁(Virtual Patch)是如何在不修改目标系统代码的情况下实现漏洞防护的?它与操作系统级别的安全补丁有什么区别?
下篇预告:第208篇:防火墙反病毒与 URL 过滤