10.5.7 开源网络入侵检测系统

2025-06-17 23:40:30 更新

(一)开源IDS系统

Snort、Suricata、Bro、Zeek、OpenDLP、Sagan

(二)Snort

Snort是一种基于网络的入侵检测系统,通过误用检测规则来检测攻击。

(1)工作模式

  1. 嗅探器:从网络上读取数据包并作为连续不断的流显示在终端上。
  2. 数据包记录器:把数据包记录到硬盘上。
  3. 网络入侵检测系统:对网络数据包进行抓包分析,根据所定义的规则进行响应及处理。

(2)基本模块

  1. 数据包嗅探器(包解码器)
  2. 预处理器插件
  3. 检测引擎和插件
  4. 报警输出模块

(3)基本原理

通过获取网络数据包,基于安全规则进行入侵检测,形成报警信息。

(4)工作方式

  1. 嗅探
  2. 包记录
  3. 网络入侵检测

(5)规则

  1. 规则头:规则操作(action)、协议(protocol)、源地址和目的IP地址及掩码、源地址和目的端口号信息
  2. 规则选项(引擎核心):报警消息、被检查网络包的部分信息及规则应采取动作

(6)语法

alert tcp any any->192.168.1.0/24 111(content: "|00 01 86 a5|";msg:"mountd access";)

动作

规则选项

alert(报警)

log(记录)

pass(忽略)

activate

dynamic

多个规则用“;”隔开,关键词用“:”和参数区分,

提供多达15个关键词

常用关键词:

msg(显示报警信息)

content(指定匹配数据包内容)

(6)检测规则

Nmap扫描检测规则

alert icmp any any → 192.168.x.y any(msg:"NMAP ping sweep Scan";dsize:0;sid:10000004;rev:1;)

alert tcp any any → 192.168.x.y any(msg:"NMAP TCP Scan";sid:10000005;rev;2;)

alert tcp any any → 192.168.x.y 22(msg:"Nmap XMAS Tree Scan";flags:FPU; sid:1000006;rev:1;)

SQL注入攻击检测规则

alert tcp any any → any 80(msg:"Error Based SQL Injection Detected";content:"%27";sid:100000011;)

alert tcp any any → any 80(msg:"OR SQL Injection Detected";content:"or";nocase;sid:100000061;)

alert tcp any any → any 80(msg:"UNION SELECT SQL Injection";content:"union";sid:1000006;)