入侵检测实验模拟
入侵检测实验模拟(Snort)
0前言
理解入侵检测的作用和检测原理,理解误用检测和异常检测的区别掌握 Snort 的安装、配置与使用
1.安装和配置 IDS 软件 Snort
由于需要对网络底层进行操作,安装 Snort 前需要预先安装 WinpCap4.1.1 以上版本(WIN32 平台上网络分析和捕获数据包的链接库)。(如果安装了 Wireshark,可不必再安装)
(1)从 http://202.192.33.200 (校内)或 http://quickconnect.to/mclass 信息安全技术实验下载 Windows 平台下的 Snort2.9.2.2 安装程序:
① 双击 Snort2.9.2.2 安装程序进行安装,假定选择的安装目录为 D:\Snort
② 进行到选择日志文件存时,为简单起见,选择不需要数据库支持
(2)单击“开始”菜单,选择“运行”命令,输入 cmd 并按回车键,在命令行方式下输入如下
命令:
1 |
|
如果 Snort 安装成功,系统将显示出类似下图所示的信息
2.选择端口
从返回的结果可知主机上有哪个物理网卡正在工作及该网卡的详细信息。上图中显示的第四个是具有物理地址的网卡(无限网络是AC-9560型号),第五个是内网地址。输入 snort -v –i4 命令启用 Snort。其中:-v 表示使用 Verbose 模式,该命令将 IP 和 TCP/UDP/ICMP 的包头信息显示在屏幕上;-i4 表示监听第四个网卡
3.探测尝试
为了进一步查看 Snort 的运行情况,可以人为制造一些 ICMP 网络流量。例如,在局域网的另一台主机上使用 Ping 指令,探测 Snort 的主机
4.设置网络检测范围
emsp;打开 D:\Snort\etc\snort.conf,设置 Snort 的内部网络和外部网络网络检测范围。将 Snort.conf 文件中的 var HOME_NET any 语句的 any 改为自己所在的子网地址,即将 Snort 监测的内部网络设置为所在的局域网。这里是将192.168.188.1变为192.168.188.0/24代入
5.修改地址
配置网段内提供网络服务的 IP 地址,只需要把默认的$HOME_NET 改成对应的主机地址即可。
var DNS_SERVERS $HOME_NET
var SMTP_SERVERS $HOME_NET
var HTTP_SERVERS $HOME_NET
var SQL_SERVERS $HOME_NET
var TELNET_SERVERS $HOME_NET
var SNMP_SERVERS $HOME_NET
如果不需要监视类型的服务,可以用#号将上述语句注释掉。
6.配置动态预处理器库
# path to dynamic preprocessor libraries
- dynamicpreprocessor directory d:\Snort\lib\snort_dynamicpreprocessor
- dynamicpreprocessorfiled:\Snort\lib\snort_dynamicpreprocessor\sf_dce2.dll
- dynamicpreprocessor file d:\Snort\lib\snort_dynamicpreprocessor\sf_dns.dll
- dynamicpreprocessorfiled:\Snort\lib\snort_dynamicpreprocessor\sf_ftptelnet.dll
- dynamicpreprocessor file d:\Snort\lib\snort_dynamicpreprocessor\sf_sdf.dll
- dynamicpreprocessor file d:\Snort\lib\snort_dynamicpreprocessor\sf_smtp.dll
- dynamicpreprocessor file d:\Snort\lib\snort_dynamicpreprocessor\sf_ssh.dll
- dynamicpreprocessor file d:\Snort\lib\snort_dynamicpreprocessor\sf_ssl.dll
- dynamicengine d:\Snort\lib\snort_dynamicengine\sf_engine.dll
7.修改配置文件路径
在 Snort.conf 文件中,修改配置文件 classification.config 和 reference.config 的路径:
include D:\snort\etc\classification.config
include D:\snort\etc\reference.config
其中 classification.config 文件保存的是规则的警报级别相关的配置,reference.config 文件保存了提供更多警报相关信息的链接。
8.检测 Snort 安装并修改是否成功
Snort 嗅探器模式 检测 Snort 安装是否成功时,用到的就是 Snort 嗅探器模式。输入命令如下: snort -v –i4
使 Snort只将 IP和 TCP/UDP/ICMP的包头信息输出到屏幕上。如果要看到应用层的数据, 可以输入如下命令: snort -v -e –i4
9.开启数据包记录器模式
上面的命令只是在屏幕上输出,如果要记录在 LOG 文件上,需要预先建立一个 Log
目录。输入下面的命令数据包记录器模式:
snort -dve –i4 -l d:\Snort\log -h 192.168.1.0/24 -K ascii
其中:-l 选项指定了存放日志的文件夹;
-h 指定目标主机,这里检测对象是局域网段内的所有主机,如不指定-h,则默认检测本机;
-K 指定了记录的格式,默认是 Tcpdump 格式,此处使用 ASCII 码。
在命令行窗口运行了该指令后,将打开保存日志的目录。在 Log 目录下自动生成了许多文件夹和文件,文件夹是以数据包主机的 IP 地址命名的,每个文件夹下记录的日志就是和该外部主机相关的网络流量。
使用记事本或纯文本编辑器打开其中任一个,可以查看日志文件,会发现文件的内容和嗅探器模式下的屏幕输出类似。
如图所示。使用 Ctrl-C 键可以退出程序,看到数据包统计信息
10.NIDS(入侵检测(IDS)功能)
A.网络 IDS 模式
该模式是 snort 的最重要的实现形式。相对于数据包记录器模式,该模式只是增加了一个选项“-c”,用于指明所使用的规则集 snort.conf(在 IDS 模式下必须指定规则集文件)。使用任一文本编辑软件打开\etc\snort.conf。
snort 的配置文件进行修改:
① 检测的内外网范围
ipvar => var
HOME_NET any => HOME_NET 192.168.1.0/24
注意:192.168.1.0/24 为样例,实际依据你的环境定义
② 增加并修改 PATH 部分为
var TEST_PATH d:\Snort\test var RULE_PATH rules
③ 文件路径的格式修改为 Windows 下的格式
所有 / 改为 \
④ 定制自己的规则
include $TEST_PATH\test.rules
⑤ 注释掉没有使用的选项。
B 创建自己的规则
① d:\Snort 目录下创建目录 test
② 使用纯文本编辑器编辑 test.rules
③ 输入自己创建的三条规则
规则 1:自定义带有自己的名字的规则
例如:捕获 icmp ping 包并报警的规则alert icmp any any <> $HOME_NET any ( msg:”ICMP ping by YOURNAME”;sid:YOURSTU_CODE;)
规则 2:以 http 访问给定的域名的报警规则。
例如,可以利用 Snort 规则的 content 字段,匹配域名 maths.gzhu.edu.cn,以产生 http 协议访问该域名的报警。
规则 3:以 https 访问给定的域名的报警规则
例如,类似规则 2,利用 Snort 规则的 content 字段,匹配 QQ 音乐域名 y.qq.com,以产生 https 协议访问该域名的报警。
C.启动 snort 的入侵检测模式
如:snort.exe –i4 –dev –l d:\Snort\log –c d:\snort\etc\snort.conf,检查 snort 能否正常启动,如有错误根据错误提示进行排错。(注意:上面命令使用的是第 4 个网卡接口;记录应用层,数据链层的信息;日志记录在d:\Snort\log 下;配置文件路径是 d:\Snort\etc\snort.conf。)
D.产生检测流:发送激活自定义规则的网络包。
11.定义的三条规则解释
所定义三条规则:
第一条是使用虚拟机进行内网ping并且捕获icmp的ping包进行报警处理
第二条规则是抓取有关广州大学官网相关信息的http数据包并进行报警处理
第三条规则是抓取有关QQ音乐官网相关信息的https数据包并进行报警处理
12.触发报警解析
报警内容如下图所示
icmp的报警截图中,通过抓取类型实现,通过分析流量数据包中的icmp类型进行相应内容的记录和报警。由网址192.168.188.1的虚拟机ip对本机的ip地址192.168.188.131进行ping处理,产生ICMP对应类型数据包
http的报警截图中,本次http的抓取以广州大学官网为例子,通过抓取gzhu相关关键字进行数据包的抓取并处理,当登录广州大学官网时,在数据包中会存在gzhu等相关内容,进行识别达到抓取并报警的目的。
https的抓取规则和http的抓取采用相同的中心思想,本次https的抓取以QQ音乐为例子,也是通过抓取yqq相关关键字进行数据包的抓取并报警处理
13.总结
本次的实验三条规则均被触发,在设立规则中不难看出Snort规则是基于文本的,规则文件按照不同的组进行分类,并且每条规则都可以分成逻辑上的两个部分:规则头和规则体。我们可以重新定义一些 Snort 规则,针对用户的这类行为产生报警。
侵检测可以被定义为对计算机和网络资源的恶意使用行为进行识别和相应处理的系统。包括系统外部的入侵和内部用户的非授权行为,是为保证计算机系统的安全而设计与配置的一种能够及时发现并报告系统中未授权或异常现象的技术,是一种用于检测计算机网络中违反安全策略行为的技术。
检测原理是从一组数据中检测出符合某一特点的数据。构筑异常检测原理的入侵检测系统,首先要建立系统或用户的正常行为模式库,不属于该库的行为被视为异常行为。但是,入侵性活动并不总是与异常活动相符合,而是存在下列4种可能性:入侵性非异常;非入侵性且异常;非入侵性非异常;入侵性且异常。中心思想是寻找所谓的关键字眼进行识别和筛选。
误用检测和异常检测的区别在于异常检测是指通过攻击行为的特征库,采用特征匹配的方法确定攻击事件;在误用检测方法中,首先定义异常系统行为,然后将所有其他行为定义为正常。它反对使用反向的异常检测方法:首先定义正常系统行为并将所有其他行为定义为异常。通过误用检测,任何未知的都是正常的