第207篇:防火墙入侵防御(IPS)基础
关键词
IPS、入侵防御、签名检测、异常检测、实时阻断、误报、漏报、IPS 策略
一、IPS 概述
1.1 什么是 IPS
IPS(Intrusion Prevention System,入侵防御系统)是防火墙的内联安全模块,实时检测并阻断网络攻击:
防火墙分层防御模型:
包过滤层 五元组 ACL 状态检测层 会话表 + 状态跟踪 应用识别层 DPI + 应用协议识别 IPS 层(最内层) 攻击签名 + 行为分析
IPS 和 IDS 的区别: 部署方式: IPS = 串联(Inline),实时阻断 IDS = 旁路(Out-of-band),只告警不阻断
华为 NGFW:IPS 是内置功能,默认串联工作
1.2 IPS 能检测的攻击类型
IPS 覆盖的攻击类型:
1. 漏洞利用(Exploit)
缓冲区溢出、SQL 注入、命令注入、XXE
2. 恶意软件(Malware)
病毒、蠕虫、木马、勒索软件传播
3. 协议异常(Protocol Anomaly)
畸形报文、非法标志位、非标准端口服务
4. DoS/DDoS
SYN Flood、UDP Flood、HTTP Flood
5. Web 应用攻击
XSS、CSRF、文件包含、路径穿越
二、IPS 检测技术
2.1 签名检测(Signature-based)
签名检测是 IPS 最核心的技术:
签名 = 攻击特征的模式描述
签名示例(SQL 注入):
签名 ID: 12345 名称:SQL_Injection_Union_Select 协议:HTTP 方向:请求(Request) 匹配模式:'union.select.from' 动作:阻断(Block) 严重级别:高
签名库的组成: 华为 IPS 签名库:约 10,000+ 条签名 分类: - 系统漏洞类(Windows/Linux/网络设备) - Web 应用类(OWASP Top 10) - 恶意软件类(病毒特征) - 协议异常类(RFC 违背)
2.2 异常检测(Anomaly-based)
异常检测建立流量基线,偏离基线则告警:
正常基线:
HTTP GET 请求频率:1000次/分钟
每个请求大小:500-5000 字节
连接成功率:> 95%
异常检测到攻击:
HTTP GET 请求频率:100000次/分钟(100倍)
请求大小:5000-50000 字节
→ 检测到 HTTP Flood 攻击(CC 攻击)
# 配置异常检测阈值
ips
abnormal-protection-profile default
tcp-syn-flood threshold 5000 # SYN 超过 5000/秒告警
tcp-syn-flood action block # 超过 10000/秒阻断
udp-flood threshold 10000
icmp-flood threshold 5000
2.3 协议解码(Protocol Decode)
IPS 对应用层协议进行完整解码,在协议上下文中检测攻击:
HTTP 协议解码示例:
原始流量:GET /index.php?id=1%27%20UNION%20SELECT%201,2,3--
IPS 解码过程:
1. TCP 重组 → HTTP 请求行
2. URI 解码 → /index.php?id=1' UNION SELECT 1,2,3--
3. 参数提取 → id = "1' UNION SELECT 1,2,3--"
4. SQL 注入签名匹配 → union select → 命中
5. 动作:阻断
解码支持协议:
HTTP/HTTPS、FTP、SMTP、POP3、IMAP
DNS、SMB、RPC、SQL 协议(MSSQL、MySQL)
SIP、H.323 等 VoIP 协议
三、IPS 策略配置
3.1 IPS 配置流程
IPS 配置三步走:
步骤 1:选择 IPS 签名(签名集)
步骤 2:配置检测模式(告警/阻断)
步骤 3:应用安全策略
3.2 配置示例
# 步骤 1:创建 IPS 签名集
ips-signature-set name Web_Protection
# 选择要启用的签名类别
category OS_Windows severity high action block # Windows 高危漏洞阻断
category Web_Severity high action block # Web 高危攻击阻断
category Malware severity medium action alert # 恶意软件中危告警
!
# 排除误报签名
exclude signature-id 54321 # 该签名经常误报
# 步骤 2:创建 IPS 配置文件
ips-profile name Web_IPS_Profile
signature-set Web_Protection
abnormal-protection-profile default # 异常检测
protocol-threat protection enable # 协议威胁防护
# 步骤 3:在安全策略中引用 IPS 配置
security-policy
rule name Internet_to_DMZ
source-zone untrust
destination-zone dmz
destination-address 192.168.1.0 mask 255.255.255.0
service http
service https
action permit
profile ips Web_IPS_Profile # 关联 IPS 配置
3.3 查看 IPS 运行状态
# 查看 IPS 检测统计
display ips statistics
Total packets detected: 50000000
Total attacks detected: 1234
Blocked attacks: 1100
Alerted attacks: 134
# 查看最近攻击事件
display ips event
Time Src IP Dst IP Signature Name Action
2024-03-15 10:00:01 5.5.5.5 192.168.1.100 SQL_Injection Blocked
2024-03-15 10:00:02 6.6.6.6 192.168.1.200 XSS_Reflected Blocked
2024-03-15 10:00:03 7.7.7.7 192.168.1.100 Path_Traversal Alerted
四、误报与漏报
4.1 误报处理
误报(False Positive):正常流量被误判为攻击
误报的影响:
1. 正常业务中断(阻断模式下)
2. 运维告警疲劳(告警模式下)
3. 安全团队失去对 IPS 的信任
处理误报的步骤:
1. 确认误报
查看 IPS 事件 → 确认报文内容 → 与业务团队确认
2. 临时排除
ips-signature-set name Web_Protection
exclude signature-id 54321 # 排除误报签名
exclude source-address 10.0.0.100 # 排除特定源 IP
3. 分析误报原因
- 签名过于宽泛 → 向厂商反馈调整
- 业务流量特殊 → 创建白名单
- 协议实现差异 → 调整检测参数
4.2 签名管理
# 查看签名详情
display ips signature-info signature-id 54321
Signature ID: 54321
Name: HTTP_SQL_Injection
Category: Web_Attack
Severity: High
Protocol: HTTP
Description: Detects SQL injection attempts in HTTP URI
Affected Products: All web applications
# 手动更新签名库(在线更新)
update ips-signature
server url http://update.huawei.com/ips/signature.dat
!
# 设置自动更新
update schedule ips-signature
daily 03:00 # 每天凌晨 3 点更新
五、IPS 性能考量
5.1 IPS 的性能开销
IPS 启用对防火墙性能的影响:
无 IPS: 10 Gbps(纯转发)
启用 IPS: 3-5 Gbps(深度检测)
全功能(IPS+AV+URL):1-3 Gbps(最重负载)
影响性能的因素:
1. 报文大小:小报文需要更多的检测处理
2. 连接并发数:并发越高,检测压力越大
3. 规则数量:规则越多,匹配耗时越长
4. 应用类型:简单协议 vs 加密协议
5.2 性能优化
# 性能优化建议
1. 按需启用签名
只启用实际需要的签名类别
如 DMZ 区主要启用 Web 攻击签名
2. 白名单优化
可信流量跳过 IPS 检测
security-policy
rule name Trust_to_Internet
source-zone trust
destination-zone untrust
source-address 10.0.0.0 mask 255.0.0.0
action permit
# 不关联 IPS profile → 跳过检测
3. 硬件加速
使用专用 NP/FPGA 进行签名匹配
华为 USG6600E/9500E 系列内置 IPS 硬件加速
六、IPS 最佳实践
6.1 上线步骤
IPS 上线推荐步骤:
第一阶段:告警模式(1-2 周)
所有签名设为告警,观察是否有误报
ips-signature-set name Default
action alert # 全部改为告警
第二阶段:分析报告
分析告警事件,排除误报签名
确认真正攻击的签名列表
第三阶段:分步阻断
高危签名:阻断
中危签名:告警
低危签名:告警(或关闭)
逐步启用,观察业务
第四阶段:全面启用
所有签名配置为建议动作
持续监控误报
6.2 日常维护
1. 每周检查 IPS 事件
display ips event level high | include Blocked
2. 签名库保持最新
每周至少更新一次签名库
3. 每季度审查策略
分析误报/漏报,调整签名策略
4. 事件归档
将攻击事件导出到日志服务器
display ips event export log
七、总结
| 知识点 | 核心要点 |
|---|---|
| IPS 定位 | 串联内联防御,实时检测并阻断攻击 |
| 检测技术 | 签名检测、异常检测、协议解码 |
| 签名 | 攻击特征的模式描述,华为约 10,000+ 条 |
| 配置三步 | 选择签名 → 配置检测模式 → 应用安全策略 |
| 误报处理 | 排除误报签名 → 创建白名单 → 向厂商反馈 |
| 性能影响 | IPS 启用后吞吐下降 50-70% |
| 上线建议 | 先告警后阻断,分步推进 |
八、思考
- IPS 和 IDS 的核心区别是什么?为什么防火墙内置的是 IPS 而非 IDS?
- 签名检测和异常检测各有什么优缺点?它们如何互补?
- 如果 IPS 启用了某些签名后,正常业务中断了,应该如何排查和处理?
- IPS 的误报和漏报哪个更可怕?为什么?
- 在 IPS 上线时,为什么建议先采用告警模式再切换到阻断模式?
下篇预告:第208篇《防火墙反病毒与 URL 过滤》——防火墙的内容安全功能,包括反病毒引擎工作原理和 URL 分类过滤机制。