第15讲:第十一章-Snort分析课件_第1页
第15讲:第十一章-Snort分析课件_第2页
第15讲:第十一章-Snort分析课件_第3页
第15讲:第十一章-Snort分析课件_第4页
第15讲:第十一章-Snort分析课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

入侵检测技术分析第15讲0入侵检测技术分析第15讲0入侵检测技术分析

第11章Snort分析1入侵检测技术分析1课程安排入侵检测概述5学时入侵检测技术分类3学时基于主机的入侵检测技术2学时基于网络的入侵检测技术3学时混合型的入侵检测技术2学时先进的入侵检测技术3学时分布式入侵检测架构3学时设计考虑及响应问题2学时入侵检测系统的评估与测试3学时Snort分析4学时入侵检测技术的发展趋势2学时2课程安排入侵检测概述教材及参考书《入侵检测技术》唐正军等清华大学出版社《入侵检测技术》曹元大人民邮电出版社《入侵检测》罗守山北京邮电大学出版社3教材及参考书《入侵检测技术》唐正军等清华大学出版社3上一章回顾Snort的安装配置Snort总体结构Snort的使用4上一章回顾Snort的安装配置4第十一章Snort分析Snort的安装与配置Snort的总体结构分析Snort的使用

Snort的规则使用Snort构建入侵检测系统实例5第十一章Snort分析Snort的安装与配置511.4Snort的规则规则的结构规则的语法预处理程序输出插件常用攻击手段对应规则举例规则的设计继续611.4Snort的规则规则的结构继续6规则的结构Snort的规则分为两个部分:规则头和规则选项。规则头规则动作:Alert,log,pass,activate,dynamic用户可以创建一条规则,记录到系统日志和MySQL数据库ruletyperedalert{typealertoutputalert_syslog:LOG_AUTHLOG_ALERToutputdatabase:log,mysql,user=Snortdbname=Snorthost=localhost}7规则的结构Snort的规则分为两个部分:规则头和规则选项。规则的结构协议:TCP,UDP,ICMP和IPIP地址:由直接的数字型IP地址和一个Cidr块组成。“any“用来定义任何地址。可将”!“操作符用在IP地址上。比如:alerttcp!/24any->/24111(content:“|000186a5|”;msg:“externalmountdaccess”;)端口号:包括“any”端口,静态端口定义、范围、以及通过否定操作符。例如:Logudpanyany->1:1024Logtcpany:1024->/24500:方向操作符:“->“表示规则所施加的流的方向,”<>”表示双向操作符。Activate和Dynamic规则:将被Tagging所替代。8规则的结构协议:TCP,UDP,ICMP和IP8规则的结构规则的选项:所有规则选项用Snort规则选用分号“;”隔开。规则选项关键字和它们的参数用“:”分开。Snort有42个规则选项关键字msgLogtottltosidipoptionfragbitsdsizeSeq等等返回9规则的结构规则的选项:所有规则选项用Snort规则选用分号规则的语法规则分类存放在规则文件中。规则文件是普通的文本文件。可使用注释行。Snort允许定义变量,并在规则中使用这些变量。如:var:<name><value>$name:定义一个元变量$(name):使用name的内容替代$(name:-defaultvalue):使用name的内容替代。如果name未定义,则使用defaultvalue$(name:?message):使用name的内容替代。若name没有定义,则打印错误信息message,并退出程序。10规则的语法规则分类存放在规则文件中。规则文件是普通的文本文规则的语法例如:varMY_NET[/24,/24]varMY_NET$(MY_NET:-/24)logtcpanyany->$(MY_NET:?MY_NETisudefined!)23此外,还可以在规则文件中使用关键字include,允许引用其它的规则文件返回11规则的语法例如:返回11预处理程序

预处理程序代码在探测引擎被调用之前运行,但在数据包译码之后。通过这个机制,数据包可以通过额外的方法被修改或分析。使用preprocessor关键字加载和配置预处理程序。指令格式为:preprocessor<name>:<option>。预处理模块的组成如下:HTTPDecode:用于处理HTTPURI字符串并且将串中的数据转化为可读的ASCII字串。例子:preprocessorhttp_decode:808080unicodeiis_flip_slashiis_alt_unicode

12预处理程序预处理程序代码在探测引擎被调用之前运行,但在数据预处理程序PortscanDetector:向一个记录设备中记录一个源IP地址来的端口扫描的开始和结束。例子:preprocessorportscan:/2457/var/log/portscan.logPortscanIgnorehosts:忽略源自某些主机的TCPSYN和UDP端口扫描。例子:preprocessorportscan-ingnorehosts:/32/24Frag2:是一个新的IP碎片重组预处理器。等等。。。返回13预处理程序PortscanDetector:向一个记录输出插件输出插件在Snort的告警和记录子系统被调用时运行,在预处理程序和检测引擎之后。格式:output<name>:<option>例子:outputalert_syslog:LOG_AUTHLOG_LAERT输出插件的name字段说明如下:Alert_syslogAlert_fastAlert_fullAlert_smb等等返回14输出插件输出插件在Snort的告警和记录子系统被调用时运行常用攻击手段对应规则举例

下面介绍如何使用这些规则描述一个切实的攻击:针对IIS的例子网络中的漏洞的攻击,相应的规则见web-iis.rule:Alerttcp$EXTERNAL_NETany->$HTTP_SERVERS80(msg:‘WEB-IISsite/iisamplesaccess”;flag:A+;uricontent:“/site/iisamples”nocase;classtype:attempted-recon;sid:1046;rev:1;)针对利用IISweb服务器的远程漏洞CodeRedIIAlertTCP$EXTERNALany->$INTERNAL80(msg:“IDS552/web-iis_IISISAPIOverflowida”;dsize:>239;flag:A+;uricontent:“.ida?”classtype:system-or-info-attempt;reference:arachnids,552;)15常用攻击手段对应规则举例

下面介绍如何使用这些规则描述一个常用攻击手段对应规则举例

针对特洛伊木马活动的规则:AlertUDP$INTERNAL31337->$EXTERNALany(msg:“IDS189/trojan2active2back2orifice”;)针对分布式拒绝服务(DDoS)攻击的规则:Alerttcp$EXTERNAL_NETany->$HOME_NET12754(msg:”DDOSmstreamclienttohandler;content:”>”;flag:A+;referenc:cve,CAN220020138;classtype:attempted2dos;sid:247;rev:1;)16常用攻击手段对应规则举例

针对特洛伊木马活动的规则:16常用攻击手段对应规则举例

对规则的更新有以下3种方式:经常访问Snort官方网站,更新它所发布的新规则可以加入Snort的邮件列表,它会更及时地根据当前流行的安全漏洞,发布相应的攻击标识以及相应的Snort规则可以根据自己的环境定制自己的规则,或者根据自己发现的新攻击来编写相应的规则。有一些违反安全策略的行为,并不是某种攻击或这种攻击不未发现,这就需要用户自己去编写自己的规则。返回17常用攻击手段对应规则举例

对规则的更新有以下3种方式:返回规则的设计

根据网络的安全策略定制自己的规则:首先要针对具体的网络环境制订自己的安全策略,然后才能制订自己的规则。然后考察网络中所不提供的服务和提供的服务以及谁可以访问这些服务如果一个内部网络/24不允许从外部网络访问,就可以增加一条规则发现这种异常访问:Alerttcp$EXTERNAL_NETany->/24any(msg:“police:externalnetattempttoaccess/24”;classtype:attempted-recon;sid:10002;rev:1;)18规则的设计根据网络的安全策略定制自己的规则:18规则的设计

某台外部邮件服务器只用来提供邮件服务,另外开了个ssh的端口让内部网管进行访问,对其它端口的访问都应该是不允许的,外部对ssh的访问也是异常的,可加入下面规则:Alerttcpanyany->/32![25,110,22](msg:“Police:Attempttoaccess”;classtype:attempted-recon;sid10003;rev:1)Alerttcp$EXTERNAL_NETany->/3222(msg:“Police:Externalattempttoaccessssh”;classtype:attempted-recon;sid:10004;rev:1;)通过上述方法可以方便地检出对网络安全政策的违反行为,从而可以得知异常的网络访问。19规则的设计某台外部邮件服务器只用来提规则的设计

对付新的攻击首先获得某个攻击的描述,这个描述可以来自某些安全列表(如bugtraq)。也可来自某些黑客网站;或自己发现攻击描述。分析该攻击描述与正常网络通信的区别。这一步难度很大,如果设计不好,漏报和误报的可能性就很大。最后可以使用Snort的规则语法来描述这些差异,相对上面要简单的多。20规则的设计对付新的攻击20规则的设计

自已动手编写好的规则当编写规则时,首先考虑的是效率和速度。好的规则要包含content项content规则是大小写敏感的(除非用户使用了nocase选项)。考虑如下规则:Alerttcpanyany->/2421(conent:“userroot”;msg:“login”;)Alerttcpanyany->/2421(conent:“USERroot”;msg:“login”;)21规则的设计自已动手编写好的规则21规则的设计加速含有内容选项的规则内容规则选项总是最后一个被检测.因此,应该先运用别的快速规则选项,由这些选项决定是否需要检查数据包的内容.比如,对TCP会话,可先进行TCP标志位的检验.例如Alerttcpanyany->/2480(content:“cgi-bin/phf”;falgs:PA;msg:“CGI-PHFprobe”;)如果PSH和ACK标志没有置位,就不需要对数据包的有效载荷进行检验.22规则的设计加速含有内容选项的规则22规则的设计

一个规则使用的例子记录所有登录到特定主机的数据包:Logtcpanyany->/3223在第一条的基础上记录了双向的流量:Logtcpanyany<>/3223记录所有到达你的本地主机的icmp数据包Logicmpanyany<>/24any允许双向从你的机子到其他站点的http包:passtcpany80<>/24any23规则的设计一个规则使用的例子23规则的设计

显示本地主机对其它主机的111端口访问,并在log中显示(‘portmappercall’)信息:alerttcp/24any->any111(msg:”portmappercall”;)记录其他任意地址的小于1024端口访问本地小于1024端口的流量:logtcpany:1024->/24:1024能发现SYSFIN扫描的规则:alerttcpanyany->/24any(msg:“SYS-FINscan!”;flags:SF;)24规则的设计显示本地主机对其它主机的111端口访问,并在l规则的设计将会发现空TCP扫描的规则:alerttcpanyany->/24any(msg:“Nullscan”;flags:0;)发现Quesofingerprint扫描的规则alerttcpanyany->/24any(msg:“Quesofingerprint”;flags:S12;)发现溢出攻击的规则alerttcpanyany->/24143(msg:“IMAPBufferoverflow”;content:“|90E8C0FFFFFF|/bin/sh”;)25规则的设计将会发现空TCP扫描的规则:25规则的设计将会发现PHF攻击:Alerttcpanyany->/2480(msg:“PHFattempt”;content:”/cgi-bin/phf”;)将发现其它主机对本地发出的icmp包:alertudpanyany->/24(msg:“traceroute”;ttl:1)发现nmap的TCP的ping扫描alertudpanyany->/24(flags:A;ack:0;msg:“NMAPTCPping!”;)发现源路由的数据包(源路由攻击):alerttcpanyany->anyany(ipopts:lsrr;msg:”SourceRoutedpacket!;”返回26规则的设计将会发现PHF攻击:返回2611.5使用Snort构建入侵检测系统实例

下面以使用MySQL作为Snort日志信息的数据库为例,介绍基于Snort的入侵检测系统的构建使用过程。MySQL数据库的的安装编译Snort数据库日志插件配置Snort数据库输出插件建立传感器建立分析员控制台制订入侵防范策略Snort规则的测试继续2711.5使用Snort构建入侵检测系统实例下面以使用MyMySQL数据库的的安装

使用源代码安装#tar-xzvfmysql-xx.tar.gz

#cdmysql-xx

#./configure--prefix=/usr/local/mysql

#Make

#makeinstall#cdscripts

#./mysql_install_db返回28MySQL数据库的的安装

使用源代码安装返回28编译Snort数据库日志插件

如果数据库没有安装在标准位置上,就需要设置Configure脚本的选项。根据数据库所在位置,需要如下命令来编译安装snort:./configure–with-mysql=/usr/ids为了使Snort能使用这个数据记录日志信息,还需要正确配置Snort的数据库日志插件。返回29编译Snort数据库日志插件如果数据库没有安装在标准位置上配置Snort数据库输出插件

snort数据库插件配置行格式如下:outputdatabase:[loglalert],[typeofdatabase],[parameterlist]返回30配置Snort数据库输出插件snort数据库插件配置行格式建立传感器

snort需要许多程序包对其进行支持。需要Libpcap来完成捕包。OpenSSL与Stunnel联合使用对传感器到服务器间的通信进行加密.Snort控制台必须运行openssl守护进程才能进行远程管理。应用程序需要MySQL客户端与MySQL服务器建立远程连接。Snort安装的原则是使误报与漏报的比率最大化。Snort.conf用来指定监控的IP范围、启用的预处理、利用的输出插件和使用的规则。返回31建立传感器snort需要许多程序包对其进行支持。需要Lib建立分析员控制台

控制台的主要用途是提供一个独立的环境,维护Snort组件。控制台的两个必要组件是Web网页浏览器和SSH客户端。控制台既可以是linux操作系统,也可以使用微软windows操作系统。返回32建立分析员控制台控制台的主要用途是提供一个独立的环境,维护制订入侵防范策略主要针对snort.conf文件中的选项设置设置网络变量配置输出插件由于snort的规则集文件很多,为了保持目录结构的清晰,把它们放在/opt/ids/etc/snort.d目录中#mkdir–p/opt/ids/etc/snort.d#cpsnort.conf/opt/ids/etc/snort.d#cp*.rules/opt/ids/etc/snort.d#cpclassification.conf/o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论