当前位置:Linux教程 - Linux综合 - 使用Snort1.7

使用Snort1.7

  使用Snort1.7 westfox([email protected])06/08/2001 1. 简介 2. 安装(Linux)及配置 3. 使用Snort 4. 入侵检测 5. Snort Addons 6. 参考资料 1. 简介 Snort是一个开放源码的网络入侵检测系统。Snort的功能包括 1) 采用Libpcap捕获数据链路层的分组并进行协议栈分析(TCP/IP协议)。 2) 在内部Snort使用Misused检测模型进行入侵检测,即通过一个完整的入侵规则库来实时匹配并探测入侵行为。这个规则库非常全面,包含了探测缓冲区溢出,端口扫描,CGI攻击等等,并处于不断更新当中。如果你使用nmap或Trin00等进行攻击,可能你就会被snort轻易的发现。Snort也允许用户方便的编写并加入自己的规则。 3) 日志可以存储成Tcpdump二进制格式,或ASCII格式,或数据库格式(包括mysql,PostgreSQL),甚至包括XML格式。 2. 安装(Linux)及配置 以Linux平台为例,安装很简单, $tar xzvf snort-1.7.tar.gz $cd snort-1.7 $./configure $make Make之后,在当前目录下会产生一个snort可执行文件。 snort的配置文件使snort.conf,配置包含四步 1)设置网络相关变量, IDS需要区分“内网”和外网,比如我所在子网IP是202.197.40.91,则配置为 var HOME_NET 202.197.40.0/24 #内网 var EXTERNAL_NET any #外网,关键字any这里表示HOME_NET之外的所有地址 var DNS_SERVERS 202.197.32.12 #DNS 服务器 2)配置预处理器 预处理器是snort在捕获分组时对分组作的一些"预处理"动作,比如探测过小的IP碎片,重组 IP分组,重组TCP报文等,snort预处理程序为spp_*.c形式,比如spp_defrag.c实现重组IP包。用户可以预处理配置参数,如 preprocessor minfrag: 128 设置碎片小于128字节为非法。 3) 配置输出插件(output plugins) Snort的插件结构允许开发者扩展snort的功能。输出插件负责信息的输出,你可以选择ASCII文本文件存储日志,也可以选择存储到MySQL数据库中,也可以使用IAP协议将信息传给管理器Manager(参见snortnet)。 这是一个MySQL的例子 output database: log, mysql, user=westfox dbname=detector host=localhost passWord=t123 port=1234 上面例子表示使用MYSQL RDBMS,数据库名为detector,用户名westfox,密码t123,本地存储,MySQL Server端口号为1234。 Snort源代码中contrib目录下有一个create_mysql文件,可以用来方便的构造snort所需的MySQL库表结构,假设你已新建了一个名为detector,并将足够的权限交给westfox,则 $mysql detector -u westfox -p <./contrib/create_mysql 上面的命令就可以建好detector库的表结构。 4) 定制Snort 规则集(Rule Set) Snort的规则集是一般的文本文件,命名为*-lib,如backdoor-lib处理backdoor类型的入侵。所有这些*-lib文件都用“include”包含进snort.conf(1.6.3版本中名为snort-lib)中,如果用户对某种攻击类型的探测不感兴趣,可以简单将相应的一行注释掉。如 -------Cut from snort.conf--------- include webcgi-lib #include webcf-lib 你对ColdFusion并不感兴趣 include webiis-lib include webfp-lib include webmisc-lib include overflow-lib include finger-lib include FTP-lib
[1] [2] [3] 下一页 

include smtp-lib include my-lib #用户自己编写的规则文件 ------------------------------------- 用户也可以自己编写规则文件,如My-lib,,Snort规则编写语法以有人译出,这里不再叙述。 3.使用Snort Snort可以工作在三种模式下: 1) 嗅探器sniffer: 命令:snort -v [-d][-X] Snort使用Libpcap包捕获库,即TCPDUMP使用的库。在这种模式下,Snort使用网络接口的混杂模式读取并解析共享信道中的网络分组。BPF表达式可用来过滤流量。 -v verbose -d 转储应用层数据 -X 转储从链路层开始的原始包 2) 分组日志模式 命令:snort -l dir [-h hn][-b] 这种模式下以ASCII格式记录解析出的分组。 -l Directory snort将把日志放在这个目录下 -h X.X.X.X 设置本地子网号 -b 日志使用TCPDUMP二进制格式 3) 入侵检测模式 命令: snort -c snort.conf [-l dir] 必须载入规则库才能进入入侵检测模式。即 #./snort -c snort.conf snort将报警信息放入/var/log/snort目录下,可以用-l选项来改变目录 4. 入侵检测 Snort是一个轻量级的网络入侵检测系统(NIDS),采用Misused 模式进行检测。在1.7里,新增加的Spade插件使得Snort支持Anormal模式检测。Snort的检测规则是二维的,即包含规则头和规则选项两部分,这比较其他IDS定义的规则来说简单的多。Snort新的插件reference可以将确定的攻击行为同Bugtraq, CVE , arachNIDS, McAfee virus这些标准的攻击标识库结合,给出在线的有关此攻击的URL参考资料。snort的探测规则库也是时时更新反映上面这些库的变化,用户可以到www.snort.org上下载新的规则库文件。 Snort本身具有良好的扩展性,包含预处理插件,插件和输出插件三类plugins,snort运行的一个流程如下 ------------------------------------------------------------------------ Libpcap捕获分组---->TCP/IP协议栈分析---->规则探测---->日志和报警 预处理插件 插件 输出插件 ------------------------------------------------------------------------ 从上面可以知道,在Snort处理流程的三个重要环节,开发者都可以编写自己的plugins来扩展功能。 当然,一般用户仅用snort自带的探测库也可以探测绝大多数的攻击。以端口扫描攻击为例标准的snort.conf文件有一行配置portscan预处理器(源程序spp_portscan.c): preprocessor portscan: $HOME_NET 4 3 portscan.log 上一行表示对于目标地址属于本地子网的IP流,如果在少于三秒内发现连续四次TCP SYN包或UDP的"SYN"包,指示有portscan攻击,并记录到portscan.log文件中。 Snort除了统计指定时间内的连接次数外,还根据各种扫描模式的特征来探测,这些规则在scan-lib中,如 alert tcp any any -> $HOME_NET any (msg:"Possible NMAP Fingerprint attempt"; flags: SFPU;) 探测NAMP的Fingerprint扫描,标志是SYN,FIN,PSH,URG全置位。 5. Snort Addons Snort1.7的contrib目录下包含了几个有用的snort工具。 5.1 snort-net Snort-net是一个建立在snort上的分布式入侵检测系统(DIDS)。在snort-net里,多个snort作为感应器(sensor)分布在各网段捕获信息,snort-net提供一个管理器Manager,Manager负责和这些sensor联络,并提供一个管理者界面。Snort-net的Sensor和Manager之间采用IAP协议通信。 Snort-net远非完善缺陷包括 1) Snort-net所依赖的libiap库(IAP协议的实现库)现有的实现没有达到IAP0.3协议所规定的功能,包括最重要的TLS1.0协议支持。 2) Manager只能做简单的信息收集和显示工作,而没有分析综合的能力 3) 显示界面过于简陋 4)传递的消息格式缺乏灵活性 虽然有这些缺点,snort-net给出了snort向DIDS发展的框架。 5.2 Spade Spade即Statistical Packet Anomaly Detection Engine(统计分组异常检测引擎),它作为一个预处理插件存在,对Snort捕获到的包做异常检测(Anomaly Detection)。Spade仅仅是实验性质的,并不实用。
上一页 [1] [2] [3] 下一页 

5.3 IDMEF-XML 因特网工程任务组织(IETF)设立了一个入侵检测工作小组(IDWG),他们制定了一个入侵检测消息交换格式(IDMEF),IDMEF用XML语言描述。Idmef-xml输出插件将snort报警消息转换成IDMEF-xml格式。Snort通过这种消息格式可以将报警消息传递给别的软件做进一步,只要对方遵循IDMEF-XML格式即可。 6. 参考资料 Snort Home http://www.snort.org Bugtrap http://www.securityfocus.com CVE http://www.cve.mitre.org arachNIDS http://www.whitehats.com/ids/ IDMEF http://www.silicondefense.com/idwg/idmef/

(出处:http://www.sheup.com)


上一页 [1] [2] [3] 

Bugtrap http://www.securityfocus.com CVE http://www.cve.mitre.org arachNIDS http://www.whitehats.com/ids/ IDMEF http://www.silicondefense.com/idwg/idmef/

(出处:http://www.sheup.com/)


上一页 [1] [2] [3] [4]