第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%
上线建议 先告警后阻断,分步推进

八、思考

  1. IPS 和 IDS 的核心区别是什么?为什么防火墙内置的是 IPS 而非 IDS?
  2. 签名检测和异常检测各有什么优缺点?它们如何互补?
  3. 如果 IPS 启用了某些签名后,正常业务中断了,应该如何排查和处理?
  4. IPS 的误报和漏报哪个更可怕?为什么?
  5. 在 IPS 上线时,为什么建议先采用告警模式再切换到阻断模式?

下篇预告:第208篇《防火墙反病毒与 URL 过滤》——防火墙的内容安全功能,包括反病毒引擎工作原理和 URL 分类过滤机制。