第15讲:第十一章-Snort分析分析解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
规则分类存放在规则文件中。规则文件是普通的文 本文件。可使用注释行。 Snort允许定义变量,并在规则中使用这些变量。如: var : <name> <value>
$name: 定义一个元变量 $(name): 使用name的内容替代 $(name: -defaultvalue):使用name的内容替代。如果 name未定义,则使用defaultvalue $(name: ?message): 使用name的内容替代。若name没 有定义,则打印错误信息message,并退出程序。
HTTP Decode: 用于处理HTTP URI字符串并且将串 中的数据转化为可读的ASCII字串。例子: preprocessor http_decode: 80 8080 unicode iis_flip_slash iis_alt_unicode
12
预处理程序
返回
Portscan Detector: 向一个记录设备中记录一个源 IP地址来的端口扫描的开始和结束。例子: preprocessor portscan: 192.168.1.0/24 5 7 /var/log/portscan.log Portscan Ignorehosts: 忽略源自某些主机的TCP SYN和UDP端口扫描。例子: preprocessor portscan-ingnorehosts: 192.168.1.5/32 192.168.3.0/24 Frag2: 是一个新的IP碎片重组预处理器。 等等 。。。
6
规则的结构
Snort的规则分为两个部分:规则头和规则选项。
规则头
规则动作: Alert, log, pass, activate, dynamic 用户可以创建一条规则,记录到系统日志和 MySQL数据库 ruletype redalert { type alert output alert_syslog: LOG_AUTH LOG_ALERT output database: log, mysql, user=Snort dbname=Snort host=localhost }
17
规则的设计
根据网络的安全策略定制自己的规则:
首先要针对具体的网络环境制订自己的安全策 略,然后才能制订自己的规则。 然后考察网络中所不提供的服务和提供的服务 以及谁可以访问这些服务
如果一个内部网络192.168.1.0/24不允许从外部网 络访问,就可以增加一条规则发现这种异常访问: Alert tcp $EXTERNAL_NET any->192.168.1.0/24 any (msg: “police:external net attempt to access 192.168.1.0/24”;classtype:attempted-recon; sid:10002; rev:1;)
8
规则的结构
返回
规则的选项:所有规则选项用Snort规则选用分 号“;”隔开。规则选项关键字和它们的参数用 “:”分开。Snort有42个规则选项关键字
msg Logto ttl tos id ipoption fragbits dsize Seq
等等
9
规则的语法
16
常用攻击手段对应规则举例
返回
对规则的更新有以下3种方式:
经常访问Snort官方网站,更新它所发布的新规 则 可以加入Snort的邮件列表,它会更及时地根据 当前流行的安全漏洞,发布相应的攻击标识以 及相应的Snort规则 可以根据自己的环境定制自己的规则,或者根 据自己发现的新攻击来编写相应的规则。有一 些违反安全策略的行为,并不是某种攻击或这 种攻击不未发现,这就需要用户自己去编写自 己的规则。
入侵检测技术分析
第15讲
北京信息科技大学
刘凯 liukai@biti.edu.cn
0
入侵检测技术分析
第11章
Snort 分析
1
课程安排
入侵检测概述 入侵检测技术分类 基于主机的入侵检测技术 基于网络的入侵检测技术 混合型的入侵检测技术 先进的入侵检测技术 分布式入侵检测架构 设计考虑及响应问题 入侵检测系统的评估与测试 Snort分析 入侵检测技术的发展趋势
10
规则的语法
返回
例如: var MY_NET [192.168.1.0/24, 10.1.1.0/24] var MY_NET $ (MY_NET: -192.168.1.0/24) log tcp any any ->$ (MY_NET: ?MY_NET is udefined!) 23
20
规则的设计
自已动手编写好的规则
当编写规则时,首先考虑的是效率和速度。 好的规则要包含content项 content规则是大小写敏感的(除非用户使用了 nocase选项)。考虑如下规则: Alert tcp any any ->192.168.1.0/24 21 (conent: “user root”; msg: “FTP root login”;)
15
常用攻击手段对应规则举例
针对特洛伊木马活动的规则: Alert UDP $INTERNAL 31337 -> $EXTERNAL any(msg: “IDS 189/trojan2active2back2orifice”;) 针对分布式拒绝服务(DDoS)攻击的规则: Alert tcp $EXTERNAL_NET any -> $HOME_NET 12754(msg:”DDOS mstream client to handler;content:”>”; flag: A+;referenc: cve, CAN22002 0138; classtype: attempted2dos;sid:247;rev:1;)
此外,还可以在规则文件中使用关键字include,允 许引用其它的规则文件
11
预处理程序
预处理程序代码在探测引擎被调用之前运行, 但在数据包译码之后。通过这个机制,数据包 可以通过额外的方法被修改或分析。使用 preprocessor关键字加载和配置预处理程序。指 令格式为:preprocessor<name>: <option>。预处 理模块的组成如下:
14
输出插件的name字段说明如下:
常用攻击手段对应规则举例
下面介绍如何使用这些规则描述一个切实的攻击:
针对IIS的例子网络中的漏洞的攻击,相应的规则 见web-iis.rule: Alert tcp $EXTERNAL_NET any ->$HTTP_SERVERS 80 (msg: ‘WEB-IIS site/iisamples access”; flag: A+; uricontent: “/site/iisamples” nocase; classtype: attempted-recon; sid: 1046; rev:1;) 针对利用IIS web服务器的远程漏洞CodeRedII Alert TCP $EXTERNAL any -> $INTERNAL 80(msg: “IDS552/web-iis_IIS ISAPI Overflow ida”;dsize:>239;flag: A+;uricontent: “.ida?” classtype: system-or-infoattempt;reference: arachnids,552;)
18
规则的设计
某台外部邮件服务器192.168.3.2只用来提供邮件 服务,另外开了个ssh的端口让内部网管进行访 问,对其它端口的访问都应该是不允许的,外部 对ssh的访问也是异常的,可加入下面规则: Alert tcp any any -> 192.168.3.2/32![25,110,22] (msg: “Police: Attempt to access 192.168.3.2”;classtype: attempted-recon; sid 10003;rev: 1) Alert tcp $EXTERNAL_NET any ->192.168.3.2/32 22 (msg: “Police : External attempt to access 192.168.3.2ssh”; classtype: attempted-recon;sid: 10004; rev: 1;)
7
规则的结构
协议:TCP, UDP,ICMP和IP IP地址:由直接的数字型IP地址和一个Cidr块组 成。“any“用来定义任何地址。可将”!“操 作符用在IP地址上。比如: alert tcp !192.168.1.0/24 any ->192.168.1.0/24 111 (content: “|00 01 86 a5|”; msg: “external mountd access”;) 端口号:包括“any”端口, 静态端口定义、范 围、以及通过否定操作符。例如: Log udp any any -> 192.168.1.0 1:1024 Log tcp any :1024 ->192.168.1.0/24 500: 方向操作符: “->“ 表示规则所施加的流的方 向,”< >”表示双向操作符。 Activate和Dynamic规则: 将被Tagging所替代。
4
第十一章 Snort分析
Snort的安装与配置 Snort的总体结构分析 Snort的使用 Snort的规则 使用Snort构建入侵检测系统实例
5
11.4 Snort的规则
继续
规则的结构 规则的语法 预处理程序 输出插件 常用攻击手段对应规则举例 规则的设计
5学时 3学时 2学时 3学时 2学时 3学时 3学时 2学时 3学时 4学时 2学时
2
教材及参考书
《入侵检测技术》唐正军等 清华大学出版社 《入侵检测技术》曹元大 人民邮电出版社 《入侵检测》罗守山 北京邮电大学出版社
3
上一章回顾
Snort的安装配置 Snort总体结构 Snort的使用
13
输出插件
返回
输出插件在Snort的告警和记录子系统被调用时运 行,在预处理程序和检测引擎之后。
格式: output <name>: <option> 例子:output alert_syslog: LOG_AUTH LOG_LAERT Alert_syslog Alert_fast Alert_full Alert_smb 等等
22
规则的设计
一个规则使用的例子
记录所有登录到特定主机的数据包: Log tcp any any ->192.168.1.1/32 23 在第一条的基础上记录了双向的流量: Log tcp any any < >192.168.1.1/32 23 记录所有到达你的本地主机的icmp数据包 Log icmp any any < > 19源自文库.168.1.0/24 any 允许双向从你的机子到其他站点的http包: pass tcp any 80 < > 192.168.1.0/24 any
通过上述方法可以方便地检出对网络安全政策 的违反行为,从而可以得知异常的网络访问。
19
规则的设计
对付新的攻击
首先获得某个攻击的描述,这个描述可以来自 某些安全列表(如bugtraq)。也可来自某些黑客网 站;或自己发现攻击描述。 分析该攻击描述与正常网络通信的区别。这一 步难度很大,如果设计不好,漏报和误报的可 能性就很大。 最后可以使用Snort的规则语法来描述这些差异, 相对上面要简单的多。
Alert tcp any any ->192.168.1.0/24 21 (conent: “USER root”; msg: “FTP root login”;)
21
规则的设计
加速含有内容选项的规则
内容规则选项总是最后一个被检测.因此,应该先 运用别的快速规则选项,由这些选项决定是否需 要检查数据包的内容. 比如,对TCP会话, 可先进行 TCP标志位的检验. 例如 Alert tcp any any ->192.168.1.0/24 80 (content: “cgibin/phf”; falgs: PA; msg: “CGI-PHF probe”;) 如果PSH和ACK标志没有置位, 就不需要对数据 包的有效载荷进行检验.
$name: 定义一个元变量 $(name): 使用name的内容替代 $(name: -defaultvalue):使用name的内容替代。如果 name未定义,则使用defaultvalue $(name: ?message): 使用name的内容替代。若name没 有定义,则打印错误信息message,并退出程序。
HTTP Decode: 用于处理HTTP URI字符串并且将串 中的数据转化为可读的ASCII字串。例子: preprocessor http_decode: 80 8080 unicode iis_flip_slash iis_alt_unicode
12
预处理程序
返回
Portscan Detector: 向一个记录设备中记录一个源 IP地址来的端口扫描的开始和结束。例子: preprocessor portscan: 192.168.1.0/24 5 7 /var/log/portscan.log Portscan Ignorehosts: 忽略源自某些主机的TCP SYN和UDP端口扫描。例子: preprocessor portscan-ingnorehosts: 192.168.1.5/32 192.168.3.0/24 Frag2: 是一个新的IP碎片重组预处理器。 等等 。。。
6
规则的结构
Snort的规则分为两个部分:规则头和规则选项。
规则头
规则动作: Alert, log, pass, activate, dynamic 用户可以创建一条规则,记录到系统日志和 MySQL数据库 ruletype redalert { type alert output alert_syslog: LOG_AUTH LOG_ALERT output database: log, mysql, user=Snort dbname=Snort host=localhost }
17
规则的设计
根据网络的安全策略定制自己的规则:
首先要针对具体的网络环境制订自己的安全策 略,然后才能制订自己的规则。 然后考察网络中所不提供的服务和提供的服务 以及谁可以访问这些服务
如果一个内部网络192.168.1.0/24不允许从外部网 络访问,就可以增加一条规则发现这种异常访问: Alert tcp $EXTERNAL_NET any->192.168.1.0/24 any (msg: “police:external net attempt to access 192.168.1.0/24”;classtype:attempted-recon; sid:10002; rev:1;)
8
规则的结构
返回
规则的选项:所有规则选项用Snort规则选用分 号“;”隔开。规则选项关键字和它们的参数用 “:”分开。Snort有42个规则选项关键字
msg Logto ttl tos id ipoption fragbits dsize Seq
等等
9
规则的语法
16
常用攻击手段对应规则举例
返回
对规则的更新有以下3种方式:
经常访问Snort官方网站,更新它所发布的新规 则 可以加入Snort的邮件列表,它会更及时地根据 当前流行的安全漏洞,发布相应的攻击标识以 及相应的Snort规则 可以根据自己的环境定制自己的规则,或者根 据自己发现的新攻击来编写相应的规则。有一 些违反安全策略的行为,并不是某种攻击或这 种攻击不未发现,这就需要用户自己去编写自 己的规则。
入侵检测技术分析
第15讲
北京信息科技大学
刘凯 liukai@biti.edu.cn
0
入侵检测技术分析
第11章
Snort 分析
1
课程安排
入侵检测概述 入侵检测技术分类 基于主机的入侵检测技术 基于网络的入侵检测技术 混合型的入侵检测技术 先进的入侵检测技术 分布式入侵检测架构 设计考虑及响应问题 入侵检测系统的评估与测试 Snort分析 入侵检测技术的发展趋势
10
规则的语法
返回
例如: var MY_NET [192.168.1.0/24, 10.1.1.0/24] var MY_NET $ (MY_NET: -192.168.1.0/24) log tcp any any ->$ (MY_NET: ?MY_NET is udefined!) 23
20
规则的设计
自已动手编写好的规则
当编写规则时,首先考虑的是效率和速度。 好的规则要包含content项 content规则是大小写敏感的(除非用户使用了 nocase选项)。考虑如下规则: Alert tcp any any ->192.168.1.0/24 21 (conent: “user root”; msg: “FTP root login”;)
15
常用攻击手段对应规则举例
针对特洛伊木马活动的规则: Alert UDP $INTERNAL 31337 -> $EXTERNAL any(msg: “IDS 189/trojan2active2back2orifice”;) 针对分布式拒绝服务(DDoS)攻击的规则: Alert tcp $EXTERNAL_NET any -> $HOME_NET 12754(msg:”DDOS mstream client to handler;content:”>”; flag: A+;referenc: cve, CAN22002 0138; classtype: attempted2dos;sid:247;rev:1;)
此外,还可以在规则文件中使用关键字include,允 许引用其它的规则文件
11
预处理程序
预处理程序代码在探测引擎被调用之前运行, 但在数据包译码之后。通过这个机制,数据包 可以通过额外的方法被修改或分析。使用 preprocessor关键字加载和配置预处理程序。指 令格式为:preprocessor<name>: <option>。预处 理模块的组成如下:
14
输出插件的name字段说明如下:
常用攻击手段对应规则举例
下面介绍如何使用这些规则描述一个切实的攻击:
针对IIS的例子网络中的漏洞的攻击,相应的规则 见web-iis.rule: Alert tcp $EXTERNAL_NET any ->$HTTP_SERVERS 80 (msg: ‘WEB-IIS site/iisamples access”; flag: A+; uricontent: “/site/iisamples” nocase; classtype: attempted-recon; sid: 1046; rev:1;) 针对利用IIS web服务器的远程漏洞CodeRedII Alert TCP $EXTERNAL any -> $INTERNAL 80(msg: “IDS552/web-iis_IIS ISAPI Overflow ida”;dsize:>239;flag: A+;uricontent: “.ida?” classtype: system-or-infoattempt;reference: arachnids,552;)
18
规则的设计
某台外部邮件服务器192.168.3.2只用来提供邮件 服务,另外开了个ssh的端口让内部网管进行访 问,对其它端口的访问都应该是不允许的,外部 对ssh的访问也是异常的,可加入下面规则: Alert tcp any any -> 192.168.3.2/32![25,110,22] (msg: “Police: Attempt to access 192.168.3.2”;classtype: attempted-recon; sid 10003;rev: 1) Alert tcp $EXTERNAL_NET any ->192.168.3.2/32 22 (msg: “Police : External attempt to access 192.168.3.2ssh”; classtype: attempted-recon;sid: 10004; rev: 1;)
7
规则的结构
协议:TCP, UDP,ICMP和IP IP地址:由直接的数字型IP地址和一个Cidr块组 成。“any“用来定义任何地址。可将”!“操 作符用在IP地址上。比如: alert tcp !192.168.1.0/24 any ->192.168.1.0/24 111 (content: “|00 01 86 a5|”; msg: “external mountd access”;) 端口号:包括“any”端口, 静态端口定义、范 围、以及通过否定操作符。例如: Log udp any any -> 192.168.1.0 1:1024 Log tcp any :1024 ->192.168.1.0/24 500: 方向操作符: “->“ 表示规则所施加的流的方 向,”< >”表示双向操作符。 Activate和Dynamic规则: 将被Tagging所替代。
4
第十一章 Snort分析
Snort的安装与配置 Snort的总体结构分析 Snort的使用 Snort的规则 使用Snort构建入侵检测系统实例
5
11.4 Snort的规则
继续
规则的结构 规则的语法 预处理程序 输出插件 常用攻击手段对应规则举例 规则的设计
5学时 3学时 2学时 3学时 2学时 3学时 3学时 2学时 3学时 4学时 2学时
2
教材及参考书
《入侵检测技术》唐正军等 清华大学出版社 《入侵检测技术》曹元大 人民邮电出版社 《入侵检测》罗守山 北京邮电大学出版社
3
上一章回顾
Snort的安装配置 Snort总体结构 Snort的使用
13
输出插件
返回
输出插件在Snort的告警和记录子系统被调用时运 行,在预处理程序和检测引擎之后。
格式: output <name>: <option> 例子:output alert_syslog: LOG_AUTH LOG_LAERT Alert_syslog Alert_fast Alert_full Alert_smb 等等
22
规则的设计
一个规则使用的例子
记录所有登录到特定主机的数据包: Log tcp any any ->192.168.1.1/32 23 在第一条的基础上记录了双向的流量: Log tcp any any < >192.168.1.1/32 23 记录所有到达你的本地主机的icmp数据包 Log icmp any any < > 19源自文库.168.1.0/24 any 允许双向从你的机子到其他站点的http包: pass tcp any 80 < > 192.168.1.0/24 any
通过上述方法可以方便地检出对网络安全政策 的违反行为,从而可以得知异常的网络访问。
19
规则的设计
对付新的攻击
首先获得某个攻击的描述,这个描述可以来自 某些安全列表(如bugtraq)。也可来自某些黑客网 站;或自己发现攻击描述。 分析该攻击描述与正常网络通信的区别。这一 步难度很大,如果设计不好,漏报和误报的可 能性就很大。 最后可以使用Snort的规则语法来描述这些差异, 相对上面要简单的多。
Alert tcp any any ->192.168.1.0/24 21 (conent: “USER root”; msg: “FTP root login”;)
21
规则的设计
加速含有内容选项的规则
内容规则选项总是最后一个被检测.因此,应该先 运用别的快速规则选项,由这些选项决定是否需 要检查数据包的内容. 比如,对TCP会话, 可先进行 TCP标志位的检验. 例如 Alert tcp any any ->192.168.1.0/24 80 (content: “cgibin/phf”; falgs: PA; msg: “CGI-PHF probe”;) 如果PSH和ACK标志没有置位, 就不需要对数据 包的有效载荷进行检验.