(一)开源IDS系统
Snort、Suricata、Bro、Zeek、OpenDLP、Sagan
(二)Snort
Snort是一种基于网络的入侵检测系统,通过误用检测规则来检测攻击。
(1)工作模式
- 嗅探器:从网络上读取数据包并作为连续不断的流显示在终端上。
- 数据包记录器:把数据包记录到硬盘上。
- 网络入侵检测系统:对网络数据包进行抓包分析,根据所定义的规则进行响应及处理。
(2)基本模块
- 数据包嗅探器(包解码器)
- 预处理器插件
- 检测引擎和插件
- 报警输出模块
(3)基本原理
通过获取网络数据包,基于安全规则进行入侵检测,形成报警信息。
(4)工作方式
- 嗅探
- 包记录
- 网络入侵检测
(5)规则
- 规则头:规则操作(action)、协议(protocol)、源地址和目的IP地址及掩码、源地址和目的端口号信息
- 规则选项(引擎核心):报警消息、被检查网络包的部分信息及规则应采取动作
(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;)