分享
 
 
 

使用Snort1.7

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

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/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有