没有合适的资源?快使用搜索试试~ 我知道了~
11-2019053448-张强-SNORT入侵检测系统1
需积分: 0 0 下载量 97 浏览量
2022-08-08
20:03:21
上传
评论
收藏 972KB DOCX 举报
温馨提示
试读
22页
(2)预处理模块——该模块用相应的插件来检查原始数据包,从中发现原始数据的“行为”,如端口扫描,IP碎片等,数据包经过预处理后才传到检测引擎 (3)检测模块——
资源详情
资源评论
资源推荐
暨南大学本科实验报告专用纸
课程名称 网络安全实验 成绩评定
实验项目名称 SNORT 入侵检测 指导教师 潘冰
实验项目编号 11 实验项目类型 验证型 实验地点
学生姓名 张强 学号 2019053448
学院 智能科学与工程学院 系 专业 信息安全
实验时间 2022 年 5 月 日 午~ 月 日
(一)实验目的
熟悉入侵检测工具 SNORT 在 WINDOWS 中的安装和配置方法
(二)实验内容和要求
数据包嗅探,记录与简单报警
字符串匹配与端口扫描攻击
IP 分片重组检测
(三)主要仪器设备和实验环境
仪器:计算机
实验环境: 一台安装了 WINDOWS 操作系统的计算机,连接到本地局域网中。
实验原理
一.snort IDS 概述
snort IDS(入侵检测系统)是一个强大的网络入侵检测系统。它具有实时数据流量分析
和记录 IP 网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索/匹配。它能
够检测各种不同的攻击方式,对攻击进行实时报警。此外,snort 是开源的入侵检测系统,
并具有很好的扩展性和可移植性。
二.snort IDS 体系结构
snort IDS 体系结构如图 1 所示。
图 1 SnortIDS 体系结构
如上图所示,snort 的结构由 4 大软件模块组成,它们分别是:
(1)数据包嗅探模块——负责监听网络数据包,对网络进行分析;
(2)预处理模块——该模块用相应的插件来检查原始数据包,从中发现原始数据的“行
为”,如端口扫描,IP 碎片等,数据包经过预处理后才传到检测引擎;
(3)检测模块——该模块是 snort 的核心模块。当数据包从预处理器送过来后,检测引
擎依据预先设置的规则检查数据包,一旦发现数据包中的内容和某条规则相匹配,就通知报
警模块;
(4)报警/日志模块——经检测引擎检查后的 snort 数据需要以某种方式输出。如果检
测引擎中的某条规则被匹配,则会触发一条报警,这条报警信息会通过网络、UNIX socket、
Windows Popup(SMB)、SNMP 协议的 trap 命令传送给日志文件,甚至可以将报警传送给第
三方插件(如 SnortSam),另外报警信息也可以记入 SQL 数据库。
三.snort 三种工作方式
snort 拥有三大基本功能:嗅探器、数据包记录器和入侵检测。嗅探器模式仅从网络上
读取数据包并作为连续不断的流显示在终端上,常用命令 snort -dev。数据包记录器模式是
把数据包记录到硬盘上,常用命令 snort -b。网络入侵检测模式是最复杂的,而且是可配置
的。我们可以让 Snort 分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一
定的动作。
四.snort 规则
1.snort 规则定义
snort 使用一种简单的规则描述语言,这种描述语言易于扩展,功能也比较强大。snort
规则是基于文本的,规则文件按照不同的组进行分类,比如,文件 ftp.rules 包含了 FTP 攻击
内容。
「注」 snort 的每条规则必须在一行中,它的规则解释器无法对跨行的规则进行解析。
snort 的每条规则都可以分成逻辑上的两个部分:规则头和规则体。
规则头包括 4 个部分:
规则行为
协议
源信息
目的信息
图 2 是对于规则头的描述。
图 2 snort 规则头
snort 预置的规则动作有 5 种:
(1)pass—动作选项 pass 将忽略当前的包,后继捕获的包将被继续分析。
(2)log—动作选项 log 将按照自己配置的格式记录包。
(3)alert—动作选项 alert 将按照自己配置的格式记录包,然后进行报警。它的功能强
大,但是必须恰当的用,因为如果报警记录过多,从中攫取有效信息的工作量增大,反而会
使安全防护工作变得低效。
(4)dynamic—动作选项 dynamic 是比较独特的一种,它保持在一种潜伏状态,直到
activate 类型的规则将其触发,之后它将像 log 动作一样记录数据包。
(5)activate—动作选项 activate 功能强大,当被规则触发时生成报警,并启动相关的
dynamic 类型规则。在检测复杂的攻击,或对数据进行归类时,该动作选项相当有用。
除了以上 5 种预置的规则动作类型,用户还可以定制自己的类型。
规则体的作用是在规则头信息的基础上进一步分析,有了它才能确认复杂的攻击(snort
的规则定义中可以没有规则体)。规则体由若干个被分别隔开的片断组成,每个片断定义了
一个选项和相应的选项值。一部分选项是对各种协议的详细说明,包括 IP、ICMP 和 TCP
协议,其余的选项是:规则触发时提供给管理员的参考信息,被搜索的关键字,snort 规则
的标识和大小写不敏感选项。
下面是一个规则实例。
其中,alert 表示规则动作为报警。
tcp 表示协议类型为 TCP 协议。
!192.168.0.1/24 表示源 IP 地址不是 192.168.0.1/24。
第一个 any 表示源端口为任意端口。
->表示发送方向操作符。
第二个 any 表示目的 IP 地址为任意 IP 地址。
21 表示目的端口为 21。
content: "USER"表示匹配的字符串为“USER”。
msg: "FTP Login"表示报警信息为“FTP Login”。
上面的规则也可写成:
方向操作符->表示数据包的流向。它左边的数据包分别是源地址和源端口,目的地址和
目的端口。此外,还有一个双向操作符<>,它使 snort 对这条规则中,两个 IP 地址/端口之
间的数据传输进行记录/分析,例如 telnet 或者 POP3 对话。下面的规则表示对一个 telnet 对
话的双向数据传输进行记录:
activate/dynamic 规则对扩展了 snort 功能。使用 activate/dynamic 规则对,你能够使用一
条规则激活另一条规则,当一条特定的规则启动,如果你想要 snort 接着对符合条件的数据
包进行记录时,使用 activate/dynamic 规则对非常方便。除了一个必需的选项 activates 外,
激活规则非常类似于报警规则(alert)。动态规则(dynamic)和日志规则(log)也很相似,不过它
需要一个选项:activated_by。动态规则还需要另一个选项:count。当一个激活规则启动,
它就打开由 activate/activated_by 选项之后的数字指示的动态规则,记录 count 个数据包。
下面是一条 activate/dynamic 规则对的规则:
当发现 Telnet 默认使用的 23 端口有通信,activate 规则会被触发并启动 dynamic 规则,
然后 dynamic 规则将遵循配置,记录后面的 20 个数据包。
在上面的例子里 activate 规则的“activates”值为 111,dynamic 规则的“activated_by”值为
111,这样就把两个规则关联起来,而不是因为这两个规则有相同的规则头。
2.预处理综述
预处理器在调用检测引擎之前,在数据包被解码之后运行。通过这种机制,snort 可以
以一种 out of band 的方式对数据包进行修改或者分析。
预处理器可以使用 preprocessor 关键词来加载和配置,常用到的预处理器如下:
(1)HTTP decode 预处器
HTTP 解码预处理模块用来处理 HTTP URL 字符串,把它们转换为清晰的 ASCII 字符
串。
(2)端口扫描器 portscan
端口扫描器会把由单个源 IP 地址发起的端口扫描从开始到结束的全过程记录到标准日
志。
(3)stream 处理器
stream 处理器为 snort 提供了 TCP 数据包重组的功能。在配置的端口上,stream 处理器
能够对 TCP 数据包的细小片段进行重组,使之成为完整的 TCP 数据包,然后 snort 可以对
其可疑行为进行检查。
(4)frag2 处理器
frag2 预处理器为 snort 提供了 IP 分片重组的功能。frag2 预处理器能够对分片包进行重
组来定位分片攻击,它的工作原理是将所有的分片重组构造成一个包含完整信息的数据包,
再将这个包传给检测引擎。
五.snort 应用
snort 采用命令行方式运行。格式为:snort –[options] <filters>。options 为选项参数;filters
为过滤器。
1.snort 主要选项参数
-A <alert>设置报警方式为 full,fast 或者 none。在 full 方式下,snort 将传统的报警信息
格式写入报警文件,报警内容比较详细。在 fast 方式下,snort 只将报警时间,报警内容,
报警 IP 地址和端口号写入文件。在 none 方式下,系统将关闭报警功能。
-a 显示 ARP 包。
-b 以 tcpdump 的格式将数据包记入日志。所有的数据包将以二进制格式记录到 snort.log
文件中。这个选项提高了 snort 的操作速度,因为直接以二进制存储,省略了转换为文本文
件的时间,通过-b 选项的设置,snort 可以在 100Mbps 的网络环境中正常工作。
-c <cf> 使用配置文件<cf>。文件内容主要控制系统哪些包需要记入日志,哪些包需要
报警,哪些包可以忽略等。
-C 仅抓取包中的 ASCII 字符。
-d 抓取应用层的数据包。
-D 在守护模式下运行 snort。
-e 显示和记录数据链路层信息。
-F <bpf> 从文件<bpf>中读取 BPF 过滤信息。
-h <hn> 设置<hn>(C 类 IP 地址)为内部网络。当使用这个开关时,所有从外部的流量将
会有一个方向箭头指向右边,所有从内部的流量将会有一个左箭头。这个选项没有太大的作
用,但是可以使显示的包的信息格式比较容易察看。
-i <if> 使用网络接口文件<if>。
-l <ld> 将包信息记录到目录<ld>下。设置日志记录的分层目录结构,按接收包的 IP 地
址将抓取的包存储在相应的目录下。
-n <num> 处理完<num>包后退出。
-N 关闭日志功能,报警功能仍然工作。
-p 关闭混杂模式的嗅探(sniffing)。这个选项在网络严重拥塞时十分有效。
-r <tf> 读取 tcpdump 生成的文件<tf>,snort 将读取和处理这个文件。
-s 将报警信息记录到系统日志,日志文件可以出现在/var/log/messages 目录里。
-v 将包信息显示到终端时,采用详细模式。这种模式存在一个问题:它的显示速度比
较慢,如果你是在 IDS 网络中使用 snort,最好不要采用详细模式,否则会丢失部分包信息。
-V 显示版本号,并退出。
2.Filters 过滤器
snort 的<filters>是标准的 BPF 格式的过滤器。
snort 应用了 BPF 机制,可以在探测器上书写和执行 BPF 规则的文件。BPF 机制允许用
户书写快速的包分析规则,这些规则主要基于源、目的、和其他的头信息。通过嗅探和
BPF,我们可以只捕获需要的流量,这样就减轻了需要处理的数据量。
BPF 机制很容易理解,可以用于分析 TCP、UDP、IP 和 ICMP 协议。规则语法很像自
然的口语,使用“and”和“or”作为规则操作符,用“not”作为取反符,此处还可以用括号来告诉
引擎将一系列数据作为一个整体来处理。
例如:
ICMP 捕获:icmp。
telnet 请求数据包捕获:tcp and dst port 23。
记录所有源自网络 192.168.0.0/24,目的是 202.98.0.0/24 的 IP 流量 :ip and "src net
192.168.0" and "dst net 202.98.0"。
(四)实验步骤与调试
任务一:数据包嗅探,记录与简单报警
本任务主机 A、B 为一组,C、D 为一组,E、F 为一组。
首先使用“快照 X”恢复 Linux 系统环境。
主机A:
剩余21页未读,继续阅读
型爷
- 粉丝: 17
- 资源: 337
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0