庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统安全>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

使用Snort1.7

 作者:本站收集   日期:2005-4-13
字号选择〖 〗/ 双击滚屏 单击停止   
使用Snort1.7
westfox(westfoxcs@263.net)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
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仅仅是实验性质的,并不实用。

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/
上一篇:网络流量分析(一)    下一篇:Linux 网络安全技巧  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-13
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿