当前位置:文档之家› ids综述及SNORT安装

ids综述及SNORT安装

目录

目录 (1)

第1章快乐上网,隐患重重 (2)

1.1 网络让生活更精彩 (2)

1.2 网络隐患,防不胜防 (2)

第2章防火“设”墙,家贼难防 (3)

2.1把攻击拒之门外 (3)

2.2来自内部的威胁 (3)

第3章IDS那些事儿 (3)

第4章细说IDS (4)

4.1 IDS概念解析 (4)

4.2 入侵检测系统分类 (5)

4.3入侵检测的关键技术 (6)

4.3.1基于行为的入侵检测技术 (6)

4.3.2基于知识的入侵检测技术 (6)

4.3.3基于其它方法的入侵检测技术 (6)

4.4入侵检测系统模型 (7)

4.5 IDS的评价标准 (7)

4.6 IDS的发展趋势 (7)

4.7入侵检测系统面临的挑战 (8)

4.8 IDS产品介绍 (8)

第5章“一直被模仿,从未被超越”的Snort (9)

5.1Snort简介 (9)

5.2 Snort 的功能及用法 (10)

5.3 Snort 在Windows下的集成式安装 (11)

5.4 Snort工作原理浅析 (14)

5.4.1 包捕获/解码引擎 (14)

5.4.2 预处理器 (15)

5.4.3 规则解析和检测引擎 (16)

5.4.4 输出插件 (16)

第6章相关术语 (17)

第1章快乐上网,隐患重重

1.1 网络让生活更精彩

现代社会网络的地位不言而语,工作,生活无处不在,想买个什么东东,先在网上搜一下。网络给人们的学习,工作,生活带来了革命性的变化,随着各种网络应用的发展和完善,人们的工作效率得到提高,随着远程教育的发展,学习变的更加方便。随着网络游戏,虚拟社会,新兴技术的发展,人们的生活平添了许多的乐趣。

现代社会的日益繁荣,使人们的生活也随之丰富起来,计算机网络对人们的日常生活的影响也相对重要起来。我们要了解社会,了解人类的迅速发展,除了通过各大媒体,另一个途径便是网络,它不仅简单,而且快捷。

想查询东西,有那么多的搜索引擎,又快有便利,省时间也省钱.各方各面的信息网络上几乎都能搜寻到。

对于理财,随着互联网诞生的网上银行,给人们的生活带来了方便。网上银行最大的特点:便利。以前去银行网点办业务,要排很长时间的队,还要办非常繁琐的手续、填单,太浪费时间了,网上银行坐在家里,几分钟就可以完成交易,非常方便。还有方兴未艾的网上购物,这是网上银行基本功能的延伸,虽然这种购物模式尚处于起步阶段未能普及,但已经显露出巨大的市场了。就说淘宝网,是国内领先的个人交易网上平台,淘宝网,顾名思义---没有淘不到的宝贝,没有卖不出宝贝,又便宜又实惠,我们一个同事在淘宝网买了手机,比当地的便宜多了,其他人也跟着买了。

网络作为现代传播媒介,给人们的生活带来了便利,给网民提供了自由发布言论的阵地,但因其自由性,网络也成为某些人大打―口水战‖的阵地,并引发了很多名誉权侵权案件。

网络和我们的生活有着千丝万缕的联系,同时还存在者一些难以解决的问题,但总的来说给我们的生活带来了便利。

1.2 网络隐患,防不胜防

网络虽然给我们的生活带来了极大的便利与新的可能,但Internet的开放性以及其他方面因素导致了网络环境下的计算机系统存在很多安全问题。为了解决这些安全问题,各种安全机制、策略和工具被开发和应用。但是,即便是在这样的情况下,网络的安全依旧存在很大的隐患。

病毒、蠕虫、木马和间谍软件这些是目前网络最容易遇到的安全问题。病毒是可执行代码,它们可以破坏计算机系统,通常伪装成合法附件通过电子邮件发送,有的还通过即时信息网络发送。这类病毒可能会删除程序、破坏数据、清除系统内存区和操作系统中重要的信息,对计算机用户造成重大损失。蠕虫与病毒类似,但比病毒更为普遍,蠕虫经常利用受感染系统的文件传输功能自动进行传播,从而导致网络流量大幅增加。木马程序程序可以捕捉密码和其它个人信息,使未授权远程用户能够访问安装了特洛伊木马的系统。间谍软件则是恶意病毒代码,它们可以监控系统性能,并将用户数据发送给间谍软件开发者。

还有一些网络攻击是由于操作系统和应用软件中存在BUG,别有心计的黑客利用这些漏洞向用户网络发起进攻,导致某个程序或网络丧失功能。有甚者会盗窃机密数据,直接威

胁用户网络或企业网络和其数据的安全。即便是安全工具也会存在这样的问题。几乎每天都有新的BUG被发现和公布,程序员在修改已知BUG的同时还可能产生新的BUG。系统BUG 经常被黑客利用,而且这种攻击通常不会产生日志,也无据可查。

这些网络隐患的普遍性和造成损害的重大威胁性使我们不得不在使用网络之前首先想好应对的办法,或是把这些攻击拒之门外,或是在攻击发生时及时发现并作出防御。

第2章防火“设”墙,家贼难防

2.1把攻击拒之门外

把攻击拒之门外的设备被称作“防火墙”,所谓防火墙(firewall)是建立在内外网络边界上的过滤封锁机制,它认为内部网络是安全和可信赖的,而外部网络被认为是不安全和不可信赖的。防火墙的作用是防止未经授权地访问被保护的内部网络,通过边界控制强化内部网络的安全策略。它的实现有多种形式,但原理很简单,可以把它想象为一对开关,其中一个用来阻止传输,另一个用来允许传输。防火墙作为网络安全体系的基础和核心控制设备,它贯穿于受控网络通信主干线,对通过受控干线的任何通信行为进行安全处理,如控制、审计、报警、反应等,同时也承担着繁重的通信任务。

2.2来自内部的威胁

但随着技术的发展,网络日趋复杂,传统防火墙所暴露出来的不足和弱点引出了人们对入侵检测系统(IDS)技术的研究和开发。首先,传统的防火墙在工作时,就像深宅大院虽有高大的院墙,却不能挡住小老鼠甚至是家贼的偷袭一样,因为入侵者可以找到防火墙背后可能敞开的后门。其次,防火墙完全不能阻止来自内部的袭击,而通过调查发现,50%的攻击都将来自于内部,对于企业内部心怀不满的员工来说,防火墙形同虚设。再者,由于性能的限制,防火墙通常不能提供实时的入侵检测能力,而这一点,对于现在层出不穷的攻击技术来说是至关重要的。第四,防火墙对于病毒也束手无策。因此,以为在Internet入口处部署防火墙系统就足够安全的想法是不切实际的。

入侵检测系统(IDS)可以弥补防火墙的不足,为网络安全提供实时的入侵检测及采取相应的防护手段,如记录证据用于跟踪、恢复、断开网络连接等。

第3章IDS那些事儿

1980年4月,JAMES P.A.为美国空军做了一份题为“Computer Security Threat Monitoring and Surveillance”的技术报告。该报告提出问题种对计算机系统风险和威胁的分类方法,并将威胁分为外部渗透、内部渗透和不法行为3种,最重要的是它提出了利用审计数据来监视入侵活动的思想,即入侵检测系统的思想。

1984年到1986年,乔治敦大学的Dorothy Denning和SRI/CLS公司计算机科学实验室的Peter Neumann研究出了一个名为入侵检测专家系统IDES (Intrusion Detection Expert Systems)的实时入侵检测系统模型。该模型的六部件理论为构建IDS提供了一个通用框架。

1988年,Teresa Lunt 等人针对当时爆发的莫里斯蠕虫,基于Dorothy Denning提出的入侵检测模型开发出了用于检测单机上入侵企图的入侵检测专家系统IDS。1995年又推出了它的改进版本,名为下一代入侵检测专家系统NIDES(Next-generation Intrusion Detection Expert System)。

1989年,加州大学戴维斯分校的Todd Heberlein 写了一篇题为《A Network Security Monitor》的论文,文中提出了用监控器用于捕获TCP/IP分组报文,第一次直接将网络流作为审计数据来源,因而可以在不将审计数据转换成统一格式的情况下监控异种主机,网络入侵检测从此诞生。

时至今日,IDS的发展大致经历了3个阶段:第一代IDS包括基于主机日志分析、模式匹配,这个阶段的IDS基本是试验性的系统。第二代IDS出现在于20世纪90年代中期,它主要采用网络数据包截获,主机网络数据分析和审计数据分析等技术。代表性的产品有早期的ISS Real Secure(V6.0之前)、Snort等。国内的绝大多数IDS厂家的产品都属于这一类。第三代IDS是近几年才出现的,其特点是采用协议分析、行为分析等技术。协议分析技术的采用极大减小了计算量,减少了误报率;行为异常分析技术的采用赋予了第三代IDS系统识别未知攻击的能力。第三代IDS可以分为基于异常检测的IDS和基于误用(滥用)检测的IDS 两大类。异常检测IDS是根据异常行为和计算机资源的使用情况来判断的,其代表性产品有Network ICE(2001年并入ISS)、Rea1Secure(V7.0)、NFR(v2.0)等。

第4章细说IDS

4.1 IDS概念解析

入侵检测系统全称为Intrusion Detective System,它从计算机网络系统中的若干关键点收集信息,并分析这些信息,检查网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测被认为是防火墙之后的第二道安全闸门。IDS主要执行如下任务:

1.监视、分析用户及系统活动。

2.系统构造和弱点的审计。

3.识别反映已知进攻的活动模式并向相关人士报警。

4.异常行为模式的统计分析。

5.评估重要系统和数据文件的完整性。

6.操作系统的审计跟踪管理,并识别用户违反安全策略的行为。

一个成功的入侵检测系统,不仅可使系统管理员时刻了解网络系统(包括程序、文件和硬件设备等)的任何变更,还能给网络安全策略的制订提供依据。它应该管理配置简单,使非专业人员非常容易地获得网络安全。入侵检测的规模还应根据网络规模、系统构造和安全需求的改变而改变。入侵检测系统在发现入侵后,会及时作出响应,包括切断网络连接、记录事件和报警等。IDS系统工作方式如图1所示。

图1

总体来讲,入侵检测系统的功能有:

1.监视用户和系统的运行状况,查找非法用户和合法用户的越权操作。

2.检测系统配置的正确性和安全漏洞,并提示管理员修补漏洞。

3.对用户的非正常活动进行统计分析,发现入侵行为的规律。

4.检查系统程序和数据的一致性与正确性。如计算和比较文件系统的校验和能够实时对检测到的入侵行为进行反应。

4.2 入侵检测系统分类

现有的IDS的分类,大都基于信息源和分析方法。为了体现对IDS从布局、采集、分析、响应等各个层次及系统性研究方面的问题,在这里采用五类标准:控制策略、同步技术、信息源、分析方法、响应方式。

按照控制策略分类

控制策略描述了IDS的各元素是如何控制的,以及IDS的输入和输出是如何管理的。按照控制策略IDS可以划分为,集中式IDS、部分分布式IDS和全部分布式IDS。在集中式IDS中,一个中央节点控制系统中所有的监视、检测和报告。在部分分布式IDS中,监控和探测是由本地的一个控制点控制,层次似的将报告发向一个或多个中心站。在全分布式IDS 中,监控和探测是使用一种叫―代理‖的方法,代理进行分析并做出响应决策。

按照同步技术分类

同步技术是指被监控的事件以及对这些事件的分析在同一时间进行。按照同步技术划分,IDS划分为间隔批任务处理型IDS和实时连续性IDS。在间隔批任务处理型IDS中,信息源是以文件的形式传给分析器,一次只处理特定时间段内产生的信息,并在入侵发生时将结果反馈给用户。很多早期的基于主机的IDS都采用这种方案。在实时连续型IDS中,事件一发生,信息源就传给分析引擎,并且立刻得到处理和反映。实时IDS是基于网络IDS 首选的方案。

按照信息源分类

按照信息源分类是目前最通用的划分方法,它分为基于主机的IDS、基于网络的IDS 和分布式IDS。基于主机的IDS通过分析来自单个的计算机系统的系统审计踪迹和系统日志来检测攻击。基于主机的IDS是在关键的网段或交换部位通过捕获并分析网络数据包来检测攻击。分布式IDS,能够同时分析来自主机系统日志和网络数据流,系统由多个部件组成,采用分布式结构。

按照分析方法分类

按照分析方法IDS划分为滥用检测型IDS和异常检测型IDS。滥用检测型的IDS中,首先建立一个对过去各种入侵方法和系统缺陷知识的数据库,当收集到的信息与库中的原型相符合时则报警。任何不符合特定条件的活动将会被认为合法,因此这样的系统虚警率很低。异常检测型IDS是建立在如下假设的基础之上的,即任何一种入侵行为都能由于其偏离正

常或者所期望的系统和用户活动规律而被检测出来。所以它需要一个记录合法活动的数据库,由于库的有限性使得虚警率比较高。

按照响应方式分类

按照响应方式IDS划分为主动响应IDS和被动响应IDS。当特定的入侵被检测到时,主动IDS会采用以下三种响应:收集辅助信息;改变环境以堵住导致入侵发生的漏洞;对攻击者采取行动(这是一种不被推荐的做法,因为行为有点过激)。被动响应IDS则是将信息提供给系统用户,依靠管理员在这一信息的基础上采取进一步的行动。

4.3入侵检测的关键技术

4.3.1基于行为的入侵检测技术

基于行为的入侵检测技术主要依靠统计的方法来实现对入侵行为的检测。它通过统计网络的日常行为建立一个模型,该模型由各项表示正常行为的统计数字组成。例如:在某一段时间内登录某台主机失败次数。在很短时间内重复发生登录某台主机口令出错的次数等。符合这个模型的网络行为即视为正常,不符合的即视为入侵行为。

这种入侵检测检测技术的缺点主要在于模型的建立非常困难。建立模型需要花费一定的时间,而且该入侵检测技术会造成误报等。为解决误报警问题,需要根据网络的实际使用情况对各种设定的统计值进行不断的调节。

基于行为的入侵检测技术的优点在干它可以检测到当前不为人知的入侵攻击方法。

4.3.2基于知识的入侵检测技术

基于知识的入侵检测技术主要通过应用已有的知识对入侵行为的标志进行识别,从而判断网络中是否有入侵行为的发生川。这些标志主要包括:对一个敏感主机的登录失败次数;对一个数据的一些标志位的设置是否符合RFC标准:以及数据包的内容是否与某个已知攻击方法的特征代码相符合等。

基于知识的入侵检侧技术具有较高的准确度,但是它的缺点就是在于对系统的性能要求高,而且只能检测到目前已知的攻击方法,对于未知的攻击方法没有检测能力。

4.3.3基于其它方法的入侵检测技术

基于其它方法的入侵检测技术主要有:利用专家系统进行入侵检测,其主要是将有关的入侵知识组织成知识库,再利用推理引擎进行检测。但是这种技术主要缺点在于知识的组织困难。利用数据挖掘进行入侵检测,数据挖掘是数据库的一项技术,它的作用从大型数据库中抽取知识,这和分析日志的行为相近。通过数据挖掘程序搜集到审计数据,为各种入侵行为和正常操作建立精确的行为模式。除专家系统、数据挖掘技术之外,还有神经网络,模糊系统,遗传算法等。但是这些方法都有一的缺点。

4.4入侵检测系统模型

Common Intrusion Detection Framework (CIDF)阐述了一个入侵检测系统(IDS)的通用模型。它将一个入侵检测系统分为以下组件:

事件产生器(Event generators)

事件分析器(Event analyzers

响应单元(Response units )

事件数据库(Event databases )

CIDF将IDS需要分析的数据统称为事件(event),它可以是网络中的数据包,也可以是从系统日志等其他途径得到的信息。

事件产生器的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。事件分析器分析得到的数据,并产生分析结果。响应单元则是对分析结果作出作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的报警。事件数据库是存放各种中间和最终数据的地方的统称,它可以是复杂的数据库,也可以是简单的文本文件。

在这个模型中,前三者以程序的形式出现,而最后一个则往往是文件或数据流的形式。

在其他文章中,经常用数据采集部分、分析部分和控制台部分来分别代替事件产生器、事件分析器和响应单元这些术语。且常用日志来简单的指代事件数据库。如不特别指明,本文中两套术语意义相同。

4.5 IDS的评价标准

目前的入侵检测技术发展迅速,应用的技术也很广泛,如何来评价IDS的优缺点就显得非常重要。评价IDS的优劣主要有这样几个方面:

(1)准确性。准确性是指IDS不会标记环境中的一个合法行为为异常或入侵。

(2)性能。IDS的性能是指处理审计事件的速度。对一个实时IDS来说,必须要求性能良好。

(3)完整性。完整性是指IDS能检测出所有的攻击。

(4)故障容错(fault tolerance)。当被保护系统遭到攻击和毁坏时,能迅速恢复系统原有的数据和功能。

(5)自身抵抗攻击能力。这一点很重要,尤其是“拒绝服务”攻击。因为多数对目标系统的攻击都是采用首先用“拒绝服务”攻击摧毁IDS,再实施对系统的攻击。

(6)及时性(Timeliness)。一个IDS必须尽快地执行和传送它的分析结果,以便在系统造成严重危害之前能及时做出反应,阻止攻击者破坏审计数据或IDS本身。

除了上述几个主要方面,还应该考虑以下几个方面:(1)IDS运行时,额外的计算机资源的开销;(2)误警报率/漏警报率的程度;(3)适应性和扩展性;(4)灵活性;(5)管理的开销;(6)是否便于使用和配置。

4.6 IDS的发展趋势

人们在完善原有技术的基础上,又在研究新的检测方法,如数据融合技术,主动的自主代理方法,智能技术以及免疫学原理的应用等。其主要的发展方向可概括为:

(1)大规模分布式入侵检测。传统的入侵检测技术一般只局限于单一的主机或网络框架,显然不能适应大规模网络的监测,不同的入侵检测系统之间也不能协同工作。因此,必须发展大规模的分布式入侵检测技术。

(2)宽带高速网络的实时入侵检测技术。大量高速网络的不断涌现,各种宽带接入手段层出不穷,如何实现高速网络下的实时入侵检测成为一个现实的问题。

(3)入侵检测的数据融合技术。目前的IDS还存在着很多缺陷。首先,目前的技术还不能对付训练有素的黑客的复杂的攻击。其次,系统的虚警率太高。最后,系统对大量的数据处理,非但无助于解决问题,还降低了处理能力。数据融合技术是解决这一系列问题的好方法。(4)与网络安全技术相结合。结合防火墙,病毒防护以及电子商务技术,提供完整的网络安全保障。

4.7入侵检测系统面临的挑战

IDS技术主要面临着三大挑战:

一、如何提高入侵检测系统的检测速度,以适应网络通信的要求。

网络安全设备的处理速度一直是影响网络性能的一大瓶颈,虽然IDS通常以并联方式接入网络的,但如果其检测速度跟不上网络数据的传输速度,那么检测系统就会漏掉其中的部分数据包,从而导致漏报而影响系统的准确性和有效性。在IDS中,截获网络的每一个数据包,并分析、匹配其中是否具有某种攻击的特征需要花费大量的时间和系统资源,因此大部分现有的IDS只有几十兆的检测速度,随着百兆、甚至千兆网络的大量应用,IDS技术发展的速度已经远远落后于网络速度的发展。

二、如何减少入侵检测系统的漏报和误报,提高其安全性和准确度。

基于模式匹配分析方法的IDS将所有入侵行为和手段及其变种表达为一种模式或特征,检测主要判别网络中搜集到的数据特征是否在入侵模式库中出现,因此,面对着每天都有新的攻击方法产生和新漏洞发布,攻击特征库不能及时更新是造成IDS漏报的一大原因。而基于异常发现的IDS通过流量统计分析建立系统正常行为的轨迹,当系统运行时的数值超过正常阈值,则认为可能受到攻击,该技术本身就导致了其漏报误报率较高。另外,大多IDS是基于单包检查的,协议分析得不够,因此无法识别伪装或变形的网络攻击,也造成大量漏报和误报。

三、如何提高入侵检测系统的互动性能,从而提高整个系统的安全性能。

在大型网络中,网络的不同部分可能使用了多种入侵检测系统,甚至还有防火墙、漏洞扫描等其他类别的安全设备,这些入侵检测系统之间以及IDS和其他安全组件之间如何交换信息,共同协作来发现攻击、作出响应并阻止攻击是关系整个系统安全性的重要因素。例如,漏洞扫描程序例行的试探攻击就不应该触发IDS的报警;而利用伪造的源地址进行攻击,就可能联动防火墙关闭服务从而导致拒绝服务,这也是互动系统需要考虑的问题。

4.8 IDS产品介绍

目前市场上的IDS产品从技术上看,基本可分为两大类:基于网络的产品和基于主机的产品。混合的入侵检测系统可以弥补一些基于网络与基于主机的片面性缺陷。此外,文件的完整性检查工具也可看做是一类入侵检测产品。

基于网络的入侵检测产品放置在比较重要的网段内,对每一个数据包或可疑的数据包进行特征分析。商品化的产品包括:国外的ISS RealSecure Network Sensor、Cisco Secure IDS、

CA e-Trust IDS、Axent的NetProwler,以及国内的金诺网安KIDS、北方计算中心NISDetector、启明星辰天阗黑客入侵检测与预警系统和中科网威“天眼”网络入侵侦测系统等。

基于主机的入侵检测产品主要对主机的网络实时连接以及系统审计日志进行智能分析和判断。基于主机的入侵检测系统有:ISS RealSecure OS Sensor、Emerald expert-BSM、金诺网安KIDS等。

混合式入侵检测系统综合了基于网络和主机的两种结构特点,既可发现网络中的攻击信息,也可从系统日志中发现异常情况。商品化产品有:ISS Server Sensor、NAI CyberCop Monitor、金诺网安KIDS等。

文件完整性检查工具通过检查文件的数字摘要与其他一些属性,判断文件是否被修改,从而检测出可能的入侵。这个领域的产品有半开放源代码的Tripwire。

IDS产品形式

绝大多数的入侵检测产品都以纯软件的形式出售,但为了达到性能最佳,往往需要对安装的系统进行优化调整。这样,把产品做成“黑盒子”的形式可以达到目的,如Cisco公司的Secure IDS和金诺网安KIDS。

随着入侵检测产品日益在规模庞大的企业中应用,分布式技术也开始融入到入侵检测产品中来。同时,集中管理多个传感器的中央控制台也在不断地完善。目前,绝大多数的入侵检测产品,尤其是企业级产品都具有分布式结构。

第5章“一直被模仿,从未被超越”的Snort

5.1Snort简介

上一章介绍了目前市场上存在的琳琅满目的入侵检测系统产品,其实,人们还有更好的选择,那就是著名的骨灰级开源IDS软件系统——Snort。他在业内的重要地位可称“一直被模仿,从未被超越”,在国内的安全行业甚至成为IDS系统的代名词,其规则语法更成为了事实上的业界标准。

在1998年,Martin Roesch先生用C语言开发了开放源代码(Open Source)的入侵检测系统Snort.直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS.Snort符合通用公共许可(GPL——GUN General Pubic License),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用它.snort基于libpcap。

Snort设计简洁,功能强大,无论对小的家庭用户还是繁忙的公司网络,他都有能力实时分析和记录通信流,其基于规则的检测引擎能够检测多种变种攻击。Snort几乎能兼容所有硬件平台和操作系统,并提供丰富的报警记录信息以供选择。它还能帮助用户确定网络中一些莫名其妙的服务的作用,其可扩展的体系结构和开源模式更使得用户群不断增长。

上述优点来自Snort开发小组的紧密努力:构造一个卓越的IDS系统内核。―量身订做‖的特性是如此灵活,以至于新手们往往无所适从。对此,全世界的程序员们围绕着Snort 开发了大量适用于各种需求和各种应用环境的应用程序、工具和脚本,极大地降低了Snort 配置使用所要求的技术门槛。因此,管理员们所需做的不是强忍不适磕磕绊绊地使用Snort,而是发现Snort的奇妙之处,找到称手的Snort应用工具,将它们和Snort内核DIY成一款强大的IDS。

5.2 Snort 的功能及用法

Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。

嗅探器

所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP包头信息打印在屏幕上,只需要输入下面的命令:./snort -v

使用这个命令将使snort只输出IP和TCP/UDP/ICMP的包头信息。如果你要看到应用层的数据,可以使用:./snort -vd

这条命令使snort在输出包头信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令:./snort -vde

注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价:./snort -d -v –e

数据包记录器

如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包:/snort -dev -l ./log

当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.10.1

如果你只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,你需要给出本地网络:./snort -dev -l ./log -h 192.168.1.0/24

这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。

如果你的网络速度很快,或者你想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:./snort -l ./log -b

注意此处的命令行和上面的有很大的不同。我们勿需指定本地网络,因为所有的东西都被记录到一个单一的文件。你也不必冗余模式或者使用-d、-e功能选项,因为数据包中的所有内容都会被记录到日志文件中。

你可以使用任何支持tcpdump二进制格式的嗅探器程序从这个文件中读出数据包,例如:tcpdump或者Ethereal。使用-r功能开关,也能使snort读出包的数据。snort在所有运行模式下都能够处理tcpdump格式的文件。例如:如果你想在嗅探器模式下把一个tcpdump格式的二进制文件中的包打印到屏幕上,可以输入下面的命令:./snort -dv -r packet.log 在日志包和入侵检测模式下,通过BPF(BSD Packet Filter)接口,你可以使用许多方式维护日志文件中的数据。例如,你只想从日志文件中提取ICMP包,只需要输入下面的命令行:./snort -dvr packet.log icmp

网络入侵检测系统

snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式:./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf

snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,snort就输出到/var/log/snort目录。

注意:如果你想长期使用snort作为自己的入侵检测系统,最好不要使用-v选项。因为使用这个选项,使snort向屏幕上输出一些信息,会大大降低snort的处理速度,从而在向显示器输出的过程中丢弃一些包。

此外,在绝大多数情况下,也没有必要记录数据链路层的包头,所以-e选项也可以不用:./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf

这是使用snort作为网络入侵检测系统最基本的形式,日志符合规则的包,以ASCII形式保存在有层次的目录结构中。

网络入侵检测模式下的输出选项

在NIDS模式下,有很多的方式来配置snort的输出。在默认情况下,snort以ASCII格式记录日志,使用full报警机制。如果使用full报警机制,snort会在包头之后打印报警消息。如果你不需要日志包,可以使用-N选项。

snort有6种报警机制:full、fast、socket、syslog、smb(winpopup)和none。其中有4个可以在命令行状态下使用-A选项设置。这4个是:

-A fast:报警信息包括:一个时间戳(timestamp)、报警消息、源/目的IP地址和端口。

-A full:是默认的报警模式。

-A unsock:把报警发送到一个UNIX套接字,需要有一个程序进行监听,这样可以实现实时报警。

-A none:关闭报警机制。

使用-s选项可以使snort把报警消息发送到syslog,默认的设备是LOG_AUTHPRIV和LOG_ALERT。可以修改snort.conf文件修改其配置。

snort还可以使用SMB报警机制,通过SAMBA把报警消息发送到Windows主机。为了使用这个报警机制,在运行./configure脚本时,必须使用--enable-smbalerts选项。

下面是一些输出配置的例子:

使用默认的日志方式(以解码的ASCII格式)并且把报警发给syslog:

/snort -c snort.conf -l ./log -s -h 192.168.1.0/24

使用二进制日志格式和SMB报警机制:./snort -c snort.conf -b -M WORKSTATIONS

5.3 Snort 在Windows下的集成式安装

需要软件包:

1)Snort_2_6_1_1_Installer.exe Windows 版本的Snort 安装包

2)snortrules-snapshot-CURRENT.tar.gz snort规则库

3)winpcap3.1 网络数据包截取驱动程序(4.0Beta 2 版也可)

4)acid-0.9.6b23.tar.gz 基于php 的入侵检测数据库分析控制台

5)jpgraph-2.1.4.tar.gz 图形库for PHP

6)adodb465.zip ADOdb(Active Data Objects Data Base)库for PHP

7)AppServ安装包

步骤:

第1步、安装AppServ

按向导提示完成即可。

第2步、安装winpcap

按向导提示完成即可。

第3步、安装snort

按向导提示完成即可。

安装完成使用下列命令行验证是否成功C:\Snort\bin>snort.exe -W

第4步、建立snort 运行必须的snort 库和snort_archive 库

进入执行命令行mysql –u –root –p

mysql>create database snort;

mysql>create database snort_archive;

使用C:\Snort\schemas目录下的create_mysql 脚本建立Snort 运行必须的数据表

c:\mysql\bin\mysql -D snort -u root -p < c:\snort\schemas\create_mysql

c:\mysql\bin\mysql -D snort_archive -u root -p <

c:\snort\schemas\create_mysql

建立acid 和snort 用户

mysql> grant usage on *.* to "acid"@"localhost" identified by "acidtest";

mysql> grant usage on *.* to "snort"@localhost" identified by "snorttest";

为acid 用户和snort 用户分配相关权限

mysql> grant select,insert,update,delete,create,alter on snort .* to"snort"@"localhost"; mysql> grant select,insert,update,delete,create,alter on snort .* to"acid"@"localhost"; mysql> grant select,insert,update,delete,create,alter on snort_archive .*to "acid"@"localhost"; mysql> grant select,insert,update,delete,create,alter on snort_archive .*to "snort"@"localhost"; 第5步、安装adodb:

解压缩adodb360.zip 至\php5\adodb 目录下

第6步、安装jpgrapg 库

解压缩jpgraph-1.12.2.tar.gz 至\php5\jpgraph

第7步、安装acid

解压缩acid-0.9.6b23.tar.gz 至www\acid 目录下

修改acid_conf.php 文件:

$DBlib_path = "c:\php\adodb";

$alert_dbname = "snort";

$alert_host = "localhost";

$alert_port = "3306";

$alert_user = "snort";

$alert_password = "snorttest";

/* Archive DB connection parameters */

$archive_dbname = "snort_archive";

$archive_host = "localhost";

$archive_port = "";

$archive_user = "acid";

$archive_password = "acidtest";

$ChartLib_path = "c:\php\jpgraph\src";

第8步、建立acid 运行必须的数据库:

进入http://localhost/acid/acid_db_setup.php按照系统提示建立。

第9步、安装规则库

解压snortrules-snapshot-CURRENT.tar.gz到c:\snort目录下

编辑c:\snort\etc\snort.conf 需要修改的地方:

include classification.config

include reference.config

改为绝对路径

include c:\snort\etc\classification.config

include c:\snort\etc\reference.config

设置snort 输出alert 到mysql server

output database: log,mysql, user=root password=mysql dbname=snort

host=localhost

var HOME_NET 192.168.1.0/24 ----(你所处的网段)

var RULE_PA TH C:\Snort\rules -----(规则文件存放的目录)

dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor

dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll

第10步、启动snort

执行命令行:snort -c "c:\snort\etc\snort.conf" -l "c:\snort\logs" -i 2 –d -e -X -X 参数用于在数据链接层记录raw packet 数据

-d 参数记录应用层的数据

-e 参数显示/记录第二层报文头数据

-c 参数用以指定snort 的配置文件的路径

-i 指明监听的网络接口。

第11步、测试snort

打开http://localhost/acid,如果一切正常显示如下图:

5.4 Snort工作原理浅析

Snort 主要由四个软件模块组成,这些模块使用插件模式和Snort 结合,扩展起来非常方便。这四个主要部件包括包捕获/解码引擎、预处理器、检测引擎、输出插件。

1) 包捕获/解码引擎:首先,利用libpcap 从网卡捕获网络上的数据包,然后数据包经过解码引擎填入到链路层协议的包结构体中,以便对高层次的协议进行解码,如TCP 和UDP 端口。

2) 预处理器插件:接着,数据包被送到各种各样的预处理器中,在检测引擎处理之前进行检查和操作。每个预处理器检查数据包是否应该注意、报警或者修改某些东西。

3) 规则解析和检测引擎:然后,包被送到检测引擎。检测引擎通过各种规则文件中的不同选项来对每个包的特征和包信息进行单一、简单的检测。检测引擎插件对包提供额外的检测功能。规则中的每个关键字选项对应于检测引擎插件,能够提供不同的检测

功能。

4) 输出插件:Snort 通过检测引擎、预处理器和解码引擎输出报警。

5.4.1 包捕获/解码引擎

1 数据包捕获

Snort 通过两种机制来满足网络流量的需要:将网卡设置为混杂模式;利用libpcap 从网卡捕获网络数据包。

网卡的默认工作方式是忽略所有不是自己的MAC 地址为目的地址的流量。通过将网卡设置成混杂模式,可以监听网络中的所有流量。数据包捕获函数库是一个独立的软件工具,

数据包捕获库函数能直接从网卡获取数据包。Snort 就是通过调用该库函数从网络设备上捕获数据包。它工作在OSI 模型的数据链路层。在不同的平台上使用Snort 系统,需要安装不同版本的Libpcap,比如在Linux和Unix 系统下需要安装Libpcap,而在Windows 系列系统下,就需要安装Winpcap。

2 包解码

对已经到达网卡并且被lipcap 库函数捕获的数据包,Snort 需调用解码引擎对数据链路层的原始数据包进行解码。Snort 能够识别以太网、802.11(无线局域网协议)、令牌环以及诸如IP、TCP 和UDP 等高层协议。Snort 将捕获的数据包解析后,存储在内存中指针

指向的数据结构中。

5.4.2 预处理器

Snort 卓越的速度源于简单的规则匹配,如果只对每个包进行数字和字符串的匹配,处理性能就能适应快速的高负载网络。这种检测系统的缺点是,如果攻击模式很常见,就会产生很多误报。如果模式过于特殊,又会产生漏报。造成这些缺陷的原因是特征语言的表达能力有限或IDS 对协议的分析不够,一些IDS 通过复杂的方法解决这一问题。它们有些使用协议异常检测来对不符合协议规范的包报警,有些则保持连接状态,并只对处于以连接TCP 会话中的包报警。Snort 则通过预处理器来实现这些功能,Snort 有多个预处理器,包括frag2,stream4,http_decode,Telnet_negotiation,portscan,rpc_decode 等常用的预处理器。

这些预处理器的主要功能为:

1) 包重组

2) 协议解码

3) 异常检测

1 包重组

基于特征的检测将包数据和定义良好的模式进行匹配。但是不能对跨包的数据进行检测。通过frag2 插件将分片重组到一个完整包中,可以确保攻击者不能用IP 分片来躲避检测。通过stream4 插件进行流重组,我们可以用单包特征机制在TCP 会话中跨越多个包进行模式匹配。最后,通过stream4 的状态维护功能,特征匹配可以具备一些智能,来判断哪些包应该丢弃,哪些包处于链接中。用一句话总结,包重组预处理器帮助Snort 检测匹配数据分布在多个包中的攻击。

2 协议解码

基于规则的检测提供简单的串/位匹配的功能,但无法检测HTTP 协议中不同形式的URL,除非使用无限大的规则集。http_decode预处理器帮助Snort 在规则匹配前规范化URL。简单的规则匹配还可能因为数据中间插入的协议信息而失败。Telnet_negotiation和rpc_decode 预处理器去除数据中不应该进行模式匹配的部分,rpc_decode 预处理合并RPC 消息分片,Telnet_negotiation 预处理器去除Telnet 的协议协商过程。用一句话总结,协议解码预处理对协议数据进行处理,使串匹配功能在更明确的数据上工作。

3 异常检测

基于规则的检测由于其简单性而工作可靠。它的过程精确,可以很容易地调整配置减少误报,也容易进行优化。但是,有些攻击无法通过这种模式来检测。Snort 发展了协议异常检测:portscan 预处理器允许Snort 跟踪在一个时间段内接收的扫描类型的包,对超过阈值的情况进行报警;Back Orifice 预处理器使Snort 不用巨大的规则集就可以检测加密的Back Orifice 流量。

5.4.3 规则解析和检测引擎

Snort 规则是基于文本的,它通常存在于Snort 程序目录中或者子目录中。在启动的时候,Snort 读取所有的规则文件,并且建立一个三维的链表。Snort 使用列表匹配包和检测。

1 规则解析

Snort 规则是Snort 入侵检测系统的重要组成部分。规则集是snort 的攻击特库,每条规则都对应一条攻击特征,snort 通过它来识别攻击行为。每一条规包括两个部分:规则头部(Rule Header)和规则选项(Rule Option)。规则头包含规则的行为、协议、源地址、目的地址、子网掩码、源和目的端口信息。规则选项包含报警信息以及规则触发时提供给管理员的参考信息。例如:alert tcp any any-> 202.203.112.0/24 any(content:“proxy-connection‖; msg:―proxy use‖;)这条规则述信息是:对任何访问202.203.112 网段,tcp 报文中含有proxy-connection 的流量报警。在这个例子中,左括号前面是规则头。圆括号内的内容是规则选项,在规则选项中,content 后面的内容为关键字,及需要匹配的字符串,msg 后面的内容为规则触发时将显示的信息。Snort 的规则定义中可以没有规则体,它们只是用来更好地定义所要进行的某种处理(记录、报警、忽略等)的数据包类型。只有当规则中的每一个元素都为真时,才能触发对应的规则动作。

2 检测引擎

Snort 把具有相同条件的规则链接到一个集合中,用RTN 结构来描述;规则选项对应于规则选项结点OTN(Optional Tree Node),包含一些特定的检测标志、报警信息、匹配内容等条件,每个选项的匹配子函数(插件)放到FUNC 链表中。只有当规则的各个条件都为真时才触发相应的操作。Snort 解析规则时,分别生成TCP、UDP、ICMP 和IP 这4 个不同的规则树,每一个规则树包含独立的三维链表:RTN(规则头),OTN(规则选项)和FUNC(指向匹配子函数的指针)。

当Snort 捕获一个数据报时,首先对其解码,然后进行预处理,再利用规则树对数据报进行匹配。在规则树匹配过程中:根据该数据报的IP 协议决定与哪个规则树进行匹配;然后与RTN 结点依次进行匹配,当与某个规则头相匹配时,接着向下与OTN 结点进行匹配。每个OTN 结点都包含了一条规则的全部选项,它包含的一组函数指针就是用来实现对这些条件的匹配操作。当检测得知数据报与某个OTN 结点的所有条件相符合时,即判断此数据报为攻击报文。

为提高规则匹配的速度,Snort 采用了Boyer- Moore 字符串匹配算法、二维列表递归检索(RTN 和OTN)以及函数指针列表(称为“三维列表”)等方法。

5.4.4 输出插件

抓包引擎从网络获取数据包并发送给分析模块,如果包触发了报警或日志事件,那么数据就发送给相应的输出插件。输出插件在预处理器和抓包引擎执行完之后调用Snort 报警和日志子系统时执行。

Snort 输出插件的功能可以分为7 个部分:版权和头信息;头文件、依赖关系和全局变量;关键字注册;参数分析和函数列表链;数据处理,格式化和存储;处理预处理器参数;清理和退出。下面详细描述插件的各功能:

1) 版权和头信息现存的每一个输出插件都含有鲜明的版权信息,版权信息可以由插件开发者自主添加。插件的头详细描述了插件的用途,需要的参数、结果以及其他注释。

2) 头文件,依赖关系和全局变量就绝大部分应用而言,文件以及它们之间的依赖关系对程

序至关重要,而且要自释其意。全局变量在整个插件的任何部分都可以使用。

3) 关键字注册输出插件通过配置文件和命令行引用和调用。用户必须为插件定义关键字并把该关键字连接到Snort,以便分析该关键字时作相应的特殊处理。

4) 参数分析和函数列表链大部分插件在声明时需要传递参数,因此有必要写一些代码来处理这些数据。例如,当使用日志功能时,可能需要指定一个用于存储日志的日志文件名。除了分析参数,插件还必须链接Snort 主引擎内的函数。

5) 数据处理、格式化和存储数据处理、格式化和存储是插件最主要的功能,可以这么说,如果没有数据处理、格式化和存储这些功能,输出插件就不完整,没有用。

6) 处理预处理器参数在有预处理器参数存在时,必须写数据处理代码来处理这些参数,这样在分析开始之前,Snort 和输出插件就能区分预处理器单元。

7) 清理和退出,在绝大多数情况下,需要在插件中包含清理内存、应用连接以及打开套接字的退出处理代码,这样可以提高Snort 的执行效率。Snort 能够使用输出插件来汇报和表示数据,Snort 支持多种日志格式,包括直接的文本头、PCAP、UNIX syslog、XML 文本数据库和多种关系数据库,这些输出插件使得报警和日志以更加灵活的格式和表现形式呈现给管理员。如果没有输出插件来处理、存储和格式化数据,包分析和流量分析是没有任何意义的。

第6章相关术语

随着IDS的超速发展,与之相关的术语同样急剧演变。本文向大家介绍一些IDS技术术语,其中一些是非常基本并相对通用的,而另一些则有些生僻。由于IDS的飞速发展以及一些IDS产商的市场影响力,不同的产商可能会用同一个术语表示不同的意义,从而导致某些术语的确切意义出现了混乱。对此,本文会试图将所有的术语都囊括进来。

Alerts(警报)

当一个入侵正在发生或者试图发生时,IDS系统将发布一个alert信息通知系统管理员。如果控制台与IDS系统同在一台机器,alert信息将显示在监视器上,也可能伴随着声音提示。如果是远程控制台,那么alert将通过IDS系统内置方法(通常是加密的)、SNMP(简单网络管理协议,通常不加密)、email、SMS(短信息)或者以上几种方法的混合方式传递给管理员。

Anomaly(异常)

当有某个事件与一个已知攻击的信号相匹配时,多数IDS都会告警。一个基于anomaly (异常)的IDS会构造一个当时活动的主机或网络的大致轮廓,当有一个在这个轮廓以外的事件发生时,IDS就会告警,例如有人做了以前他没有做过的事情的时候,例如,一个用户突然获取了管理员或根目录的权限。有些IDS厂商将此方法看做启发式功能,但一个启发式的IDS应该在其推理判断方面具有更多的智能。

Appliance(IDS硬件)

除了那些要安装到现有系统上去的IDS软件外,在市场的货架上还可以买到一些现成的IDS硬件,只需将它们接入网络中就可以应用。一些可用IDS硬件包括CaptIO、Cisco Secure IDS、OpenSnort、Dragon以及SecureNetPro。

ArachNIDS

ArachNIDS是由Max Visi开发的一个攻击特征数据库,它是动态更新的,适用于多种基于网络的入侵检测系统。

ARIS:Attack Registry & Intelligence Service(攻击事件注册及智能服务)

ARIS是SecurityFocus公司提供的一个附加服务,它允许用户以网络匿名方式连接到Internet上向SecurityFocus报送网络安全事件,随后SecurityFocus会将这些数据与许多其它参与者的数据结合起来,最终形成详细的网络安全统计分析及趋势预测,发布在网络上。

Attacks(攻击)

Attacks可以理解为试图渗透系统或绕过系统的安全策略,以获取信息、修改信息以及破坏目标网络或系统功能的行为。以下列出IDS能够检测出的最常见的Internet攻击类型:攻击类型1-DOS(Denial Of Service attack,拒绝服务攻击):DOS攻击不是通过黑客手段破坏一个系统的安全,它只是使系统瘫痪,使系统拒绝向其用户提供服务。其种类包括缓冲区溢出、通过洪流(flooding)耗尽系统资源等等。

攻击类型2-DDOS(Distributed Denial of Service,分布式拒绝服务攻击):一个标准的DOS攻击使用大量来自一个主机的数据向一个远程主机发动攻击,却无法发出足够的信息包来达到理想的结果,因此就产生了DDOS,即从多个分散的主机一个目标发动攻击,耗尽远程系统的资源,或者使其连接失效。

攻击类型3-Smurf:这是一种老式的攻击,但目前还时有发生,攻击者使用攻击目标的伪装源地址向一个smurf放大器广播地址执行ping操作,然后所有活动主机都会向该目标应答,从而中断网络连接。

攻击类型4-Trojans(特洛伊木马):Trojan这个术语来源于古代希腊人攻击特洛伊人使用的木马,木马中藏有希腊士兵,当木马运到城里,士兵就涌出木马向这个城市及其居民发起攻击。在计算机术语中,它原本是指那些以合法程序的形式出现,其实包藏了恶意软件的那些软件。这样,当用户运行合法程序时,在不知情的情况下,恶意软件就被安装了。但是由于多数以这种形式安装的恶意程序都是远程控制工具,Trojan这个术语很快就演变为专指这类工具,例如BackOrifice、SubSeven、NetBus等等。

Automated Response(自动响应)

除了对攻击发出警报,有些IDS还能自动抵御这些攻击。抵御方式有很多:首先,可以通过重新配置路由器和防火墙,拒绝那些来自同一地址的信息流;其次,通过在网络上发送reset包切断连接。但是这两种方式都有问题,攻击者可以反过来利用重新配置的设备,其方法是:通过伪装成一个友方的地址来发动攻击,然后IDS就会配置路由器和防火墙来拒绝这些地址,这样实际上就是对“自己人”拒绝服务了。发送reset包的方法要求有一个活动的网络接口,这样它将置于攻击之下,一个补救的办法是:使活动网络接口位于防火墙内,或者使用专门的发包程序,从而避开标准IP栈需求。

CERT(Computer Emergency Response Team,计算机应急响应小组)

这个术语是由第一支计算机应急反映小组选择的,这支团队建立在Carnegie Mellon大学,他们对计算机安全方面的事件做出反应、采取行动。现在许多组织都有了CERT,比如CNCERT/CC(中国计算机网络应急处理协调中心)。由于emergency这个词有些不够明确,因此许多组织都用Incident这个词来取代它,产生了新词Computer Incident Response Team (CIRT),即计算机事件反应团队。response这个词有时也用handling来代替,其含义是response表示紧急行动,而非长期的研究。

CIDF(Common Intrusion Detection Framework;通用入侵检测框架)

CIDF力图在某种程度上将入侵检测标准化,开发一些协议和应用程序接口,以使入侵检测的研究项目之间能够共享信息和资源,并且入侵检测组件也能够在其它系统中再利用。

CIRT(Computer Incident Response Team,计算机事件响应小组)

CIRT是从CERT演变而来的,CIRT代表了对安全事件在哲学认识上的改变。CERT最初是专门针对特定的计算机紧急情况的,而CIRT中的术语incident则表明并不是所有的incidents都一定是emergencies,而所有的emergencies都可以被看成是incidents。

CISL(Common Intrusion Specification Language,通用入侵规范语言)

CISL是CIDF组件间彼此通信的语言。由于CIDF就是对协议和接口标准化的尝试,因此CISL就是对入侵检测研究的语言进行标准化的尝试。

CVE(Common Vulnerabilities and Exposures,通用漏洞披露)

关于漏洞的一个老问题就是在设计扫描程序或应对策略时,不同的厂商对漏洞的称谓也会完全不同。还有,一些产商会对一个漏洞定义多种特征并应用到他们的IDS系统中,这样就给人一种错觉,好像他们的产品更加有效。MITRE创建了CVE,将漏洞名称进行标准化,参与的厂商也就顺理成章按照这个标准开发IDS产品。

Crafting Packets(自定义数据包)

建立自定义数据包,就可以避开一些惯用规定的数据包结构,从而制造数据包欺骗,或者使得收到它的计算机不知该如何处理它。制作自定义数据包的一个可用程序Nemesis。

Desynchronization(同步失效)

desynchronization这个术语本来是指用序列数逃避IDS的方法。有些IDS可能会对它本来期望得到的序列数感到迷惑,从而导致无法重新构建数据。这一技术在1998年很流行,现在已经过时了,有些文章把desynchronization这个术语代指其它IDS逃避方法。

Eleet

当黑客编写漏洞开发程序时,他们通常会留下一个签名,其中最声名狼藉的一个就是elite。如果将eleet转换成数字,它就是31337,而当它是指他们的能力时,elite=eleet,表示精英。31337通常被用做一个端口号或序列号。目前流行的词是“skillz”。

Enumeration(列举)

经过被动研究和社会工程学的工作后,攻击者就会开始对网络资源进行列举。列举是指攻击者主动探查一个网络以发现其中有什么以及哪些可以被他利用。由于现在的行动不再是被动的,它就有可能被检测出来。当然为了避免被检测到,他们会尽可能地悄悄进行。

Evasion(躲避)

Evasion是指发动一次攻击,而又不被IDS成功地检测到。其中的窍门就是让IDS只看到一个方面,而实际攻击的却是另一个目标,所谓明修栈道,暗渡陈仓。Evasion的一种形式是为不同的信息包设置不同的TTL(有效时间)值,这样,经过IDS的信息看起来好像是无害的,而在无害信息位上的TTL比要到达目标主机所需要的TTL要短。一旦经过了IDS 并接近目标,无害的部分就会被丢掉,只剩下有害的。

Exploits(漏洞利用)

对于每一个漏洞,都有利用此漏洞进行攻击的机制。为了攻击系统,攻击者编写出漏洞利用代码或教本。

对每个漏洞都会存在利用这个漏洞执行攻击的方式,这个方式就是Exploit。为了攻击系统,黑客会编写出漏洞利用程序。

漏洞利用:Zero Day Exploit(零时间漏洞利用)

零时间漏洞利用是指还未被了解且仍在肆意横行的漏洞利用,也就是说这种类型的漏洞利用当前还没有被发现。一旦一个漏洞利用被网络安全界发现,很快就会出现针对它的补丁程序,并在IDS中写入其特征标识信息,使这个漏洞利用无效,有效地捕获它。

False Negatives(漏报)

漏报是指一个攻击事件未被IDS检测到或被分析人员认为是无害的。

False Positives(误报)

误报是指实际无害的事件却被IDS检测为攻击事件。

Firewalls(防火墙)

防火墙是网络安全的第一道关卡,虽然它不是IDS,但是防火墙日志可以为IDS提供宝

贵信息。防火墙工作的原理是根据规则或标准,如源地址、端口等,将危险连接阻挡在外。

Windows平台下基于snort的入侵检测系统安装详解

Windows平台下基于snort的入侵检测系统安装详解 序言:最近公司网络总是不间断出现点问题,也搭建了一些流量监控服务器进行监控和分析;也一直在关注网络安全方面的知识。看到snort IDS是一个开源的软件,突然想学习下。就有了搭建Windows下Snort IDS的想法。一下内容参考网络上的资料。 1.软件准备 Apache,php,mysql,winpcap,snort,acid,adodb,jpgraph等 2.软件安装 window平台:windows xp sp3 (1)apache的安装 一路下一步,具体配置如下图:

安装完成后验证web服务是否运行正常 (2)mysql安装

(3)php安装 解压php压缩包到C盘下并命名为php 复制c:\php\phpini-dist到c:\windows下并重命名为php.ini 复制c:\php\php5ts.dll,c:\php\libmysql.dll 到 c:\windows\system32下复制c:\php\ext\php_gd2.dll到c:\windows\system32下 修改 c:\apache\conf\httpd配置文件 添加LoadModule php5_module c:/php/php5apache2_2.dll AddType application/x-httpd-php .php 重启apache服务 在c:\apache\htdocs\下新建test.php http://x.x.x.x/test.php验证php能否工作

IDS SNORT ACID搭建流程

IDS-Snort+ACID搭建流程 >ACID入侵数据库分析控制台,通过WEB界面来查看snort数据的工具。为了使用ACID,用户系统中必须安装Snort,Apache,MYSQL,PHP。他们之间的关系如下: 1:当入侵者进入用户的网络后,snort根据规则检测到入侵行为后,根据其配置文件/etc/ snort/snort.conf的配置,将信息记录到MYSQL数据库中。 2:用户使用浏览器连接到IDS服务器,请求ACID页面。 3:PHP连接到数据库,提取信息。 4:Apache响应浏览器,用户就可以在浏览器中查看,操作等。 将Apache MYSQL PHP装上 安装ACID 以上软件包的作用: Snort主程序,不用说了。 安装过程中,会创建: /etc/snort存放规则和配置文件 /var/log/snort存放日志 /usr/share/doc/snort-xxx snort文档文件README就在这里。

/usr/sbin/snort-plain主程序文件 /etc/rc.d/init.d/snortd start restart stop脚本。 Snort-mysql代替系统snort的主程序文件,使snort可以支持mysql数据库。 Php-acid ACID软件包。里面一堆的以PHP写的网页。 Php-adodb跟PHP访问数据库有关,在/ar/www/adodb。 Php-jpgraph JPG图像函数库,ACID采用它来创建入侵数据的图表。分析图就是靠它来创建的,使用户能更直观的去分析。/var/www/jpgraph-xxx 安装完后创建一个PHP测试页,看看APACHE和PHP安装是否成功。 /var/www/html Vi index.php 配置MYSQL 启动MYSQL,service mysqld start 会提示需要设置root密码 Mysqladmin–u root password test 创建两个库snort_log snort_archive

Snort详细安装步骤

S n o r t详细安装步骤Prepared on 21 November 2021

Snort使用报告 一、软件安装 安装环境:windows 7 32bit 二、软件:Snort 、WinPcap 规则库: 实验内容 熟悉入侵检测软件Snort的安装与使用 三、实验原理 Snort是一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS 四.安装步骤 1.下载实验用的软件Snort、Snort的规则库snortrules 和WinPcap. 本次实验使用的具体版本是Snort 、和WinPcap 首先点击Snort安装 点击I Agree.同意软件使用条款,开始下一步,选择所要安装的组件: 全选后,点 击下一步: 选择安装的 位置,默认 的路径为 c:/Snort/, 点击下一 步,安装完 成。软件跳 出提示需要 安装 WinPcap 以 上 2.安装 WinPcap 点击 WinPcap安装包进行安装 点击下一步继续: 点击同意使用条款: 选择是否让WinPcap自启动,点击安装: 安装完成点击完成。 此时为了看安装是否成功,进入CMD,找到d:/Snort/bin/如下图:(注意这个路径是你安装的路径,由于我安装在d盘的根目录下,所以开头是d:)

输入以下命令snort –W,如下显示你的网卡信息,说明安装成功了!别高兴的太早,这只是安装成功了软件包,下面还要安装规则库: 3.安装Snort规则库 首先我们去Snort的官网下载Snort的规则库,必须先注册成会员,才可以下载。具体下载地址为,往下拉到Rules,看见Registered是灰色的,我们点击Sign in: 注册成功后,返回到这个界面就可以下载了。下载成功后将压缩包解压到 Snort的安装文件夹内:点击全部是,将会替换成最新的规则库。 4.修改配置文件 用文件编辑器打开d:\snort\etc\,这里用的是Notepad++,用win自带的写字板也是可以的。找到以下四个变量var RULE_PATH,dynamicpreprocessor,dynamicengine,alert_syslog分别在后面添加如下路径: var RULE_PATH d:\snort\rules var SO_RULE_PATH d:\snort\so_rules var PREPROC_RULE_PATH d:\snort\preproc_rules dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicpreprocessor file d:\snort\lib\snort_dynamicpreprocessor\ dynamicengine d:\snort\lib\snort_dynamicengine\ output alert_syslog: host=:514, LOG_AUTH LOG_ALERT 到现在位置配置完成,同样回到cmd中找到d:/Snort/bin/运行snort –v –i1(1是指你联网的网卡编号默认是1)开始捕获数据,如下: 运行一段时间后按Ctrl+c中断出来可以看见日志报告:

snort中文手册

<< Back to https://www.doczj.com/doc/9c1160913.html, Snort 中文手册 摘要 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。(2003-12-11 16:39:12) Snort 用户手册 第一章 snort简介 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。 嗅探器 所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的 控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP包头信息打印在屏幕上,只需要输入下面的命令: ./snort -v 使用这个命令将使snort只输出IP和TCP/UDP/ICMP的包头信息。如

./snort -vd 这条命令使snort在输出包头信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令: ./snort -vde 注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价: ./snort -d -v –e 数据包记录器 如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort 就会自动记录数据包: ./snort -dev -l ./log 当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.10.1 如果你只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,你需要给出本地网络: ./snort -dev -l ./log -h 192.168.1.0/24 这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。 如果你的网络速度很快,或者你想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:

snort入侵检测实验报告

实验:入侵检测系统(Snort)的安装与配置 一、实验目的 学会WINDOWS下SNORT的安装与配置 二、实验环境 WinXP虚拟机 三、实验步骤与结果 一.在“我的电脑”中C盘中建立文件夹“zhangxiaohong” 二.安装WinPcap,运行WinPcap_4_1_2.zip,默认安装。 三.安装mysql,运行mysql-5.0.22-win32.zip,选择自定义安装选择安装路径 C:\zhangxiaohong\mysql 下,安装时注意:端口设置为3306(以后要用到),密码本实验设置成123 四.安装apache 1.运行apache_ 2.2.4-win32-x86-no_ssl.zip,安装到c:\zhangxiaohong\Apache 2.安装Apache,配置成功一个普通网站服务器 3.出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续 4.确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续 5.将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续 6.选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选 择Custom,有更多可选项。按“Next”继续 7.出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,

选择“This feature, and all subfeatures, will be installed on local hard drive.” 8.即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选 “Change...”,手动指定安装目录。 9.我这里选择安装在“C:\zhangxiaohong\Apache”,各位自行选取了,一般建议 不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件 也清除了。选“OK”继续。 10.返回刚才的界面,选“Next”继续。 11.好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打 “.0.1”,点“转到”,就可以看到如下页面,表示Apache服务器已安装成功。 12. 五.安装和配置PHP53、安装winpcap 1.解压php-5. 2.5-Win32到c:\zhangxiaohong\php 2.添加gd图形库支持 复制c:\zhangxiaohong\php\php5ts.dll和c: \zhangxiaohong\php\libmysql.dll文件到 C:\Windows\system32 复制c: \zhangxiaohong\php\php.ini-dist到C:\Windows文件夹并重命名为php.ini, 修改php.ini,分别去掉“extension=php_gd2.dll”和“extension=php_mysql.dll”前的分号, 3.并指定extension_dir="c:\zhangxiaohong\php\ext", 4.同时复制c:\zhangxiaohong\php\ext下的php_gd2.dll与php_mysql.dll到C:\Windows\system32 在C:\zhangxiaohong\apache\conf\httpd.conf中添加 LoadModule php5_module c:/zhangxiaohong/php/php5apache2.dll AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps AddType application/x-httpd-php .html AddType application/x-httpd-php .htm 5.重启Apache服务 在C:\zhangxiaohong\apache\htdocs目录下新建webinf.php(文件内容为:)并使用访问测试是否能够显示当前Apache服务器的信息,如果能够显示表明Apache和php工作基本正常 六.安装snort 1.运行Snort_2_9_0_5_Installer.exe 安装在C:\zhangxiaohong\Snort下即可, 运行C:\zhangxiaohong\Snort\bin\snort.exe或者在DOS中找到该位置, 如果安装Snort成功会出现一个可爱的小猪 2.并按照以下修改C:\zhangxiaohong\Snort\etc\snort.conf文件

Snort 命令参数详解

用法: snort -[options] 选项: -A 设置报警模式,alert = full/fast/none/unsock,详解上一篇snort简介。 -b 用二进制文件保存网络数据包,以应付高吞吐量的网络。 -B 将IP地址信息抹掉,去隐私化。 -c 使用配置文件,这会使得snort进入IDS模式,并从中读取运行的配置信息。-d 显示包的应用层数据。 -D 以后台进程运行snort。如无指定,Alerts将写到/var/log/snort/alert。 -e 显示数据链路层的信息。 -E 保存报警日志为windows事件日志。 -f 激活PCAP行缓冲(line buffering)。 -F 指定BPF过滤器。 -g 初始化Snort后以组ID(group ID)运行。 -G 为事件生成设置一个基础事件id值。 -h 设置本地网络为hn,如192.168.1.0/24。 -i 设置网络接口为。可以用-W选项查询网络接口列表,然后用接口序号index指定接口。如-i 2 -I 报警时附加上接口信息。 -J 当以in-line模式运行时,这个选项将只捕获端口的报文。 -k 为all,noip,notcp,noudp,noicmp,or none设置校验和模式。 -K 设置保存文件的格式:pcap,ascii,none。pcap是默认格式,同于-b选项的格式。ascii是老的模式格式。none则关闭数据包记录。 -l 设置数据包文件存放目录。默认目录是/var/log/snort. -L 设置二进制输出文件的文件名为。 -M 当以非后台模式daemon运行时,保存信息到syslog。 -m 设置snort输出文件的权限位。 -n 出来个报文后终止程序。 -N 关闭保存日志包功能。 -o 改变应用规则的顺序。从Alert-->Pass-->Log顺序改为Pass-->Alert-->Log,避免了设置大量BPF命令行参数来过滤alert规则。 -O 在ASCII数据包捕获模式下混淆IP地址。 -p 关闭混杂模式。 -P设置snaplen,默认值是当前网卡的MTU。 -q 安静模式,不显示标志和状态报告。 -Q 当在线(in-line)运行时,从iptables/IPQ中读取数据包。 -r 从pcap格式的文件中读取数据包。 -R 为snort pidfile增加下标。 -s 使snort把报警消息发送到syslog,默认的设备是LOG_AUTHPRIV和LOG_ALERT。可以修改snort.conf文件修改其配置。 -S 为变量n设置值为v。 -t 初始化后将Snort的根目录改变为。 -T 以自检测模式启动Snort。 -u 初始化后改变Snort的UID。

Snort详细安装步骤

Snort使用报告 一、软件安装 安装环境:windows 7 32bit 软件:Snort 2.9.5.5、WinPcap 4.1.1 规则库: snortrules-snapshot-2970.tar.gz 二、实验内容 熟悉入侵检测软件Snort的安装与使用 三、实验原理 Snort是一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS

四.安装步骤 1.下载实验用的软件Snort、Snort的规则库snortrules 和WinPcap. 本次实验使用的具体版本是Snort 2.9.5.5、snortrules-snapshot-2970.tar.gz 和WinPcap 4.1.3 首先点击Snort安装 点击I Agree.同意软件使用条款,开始下一步,选择所要安装的组件: 全选后,点击下一步:

选择安装的位置,默认的路径为c:/Snort/,点击下一步,安装完成。软件跳出提示需要安装WinPcap 4.1.1以上 2.安装WinPcap 点击WinPcap安装包进行安装 点击下一步继续:

点击同意使用条款: 选择是否让WinPcap自启动,点击安装:

安装完成点击完成。 此时为了看安装是否成功,进入CMD,找到d:/Snort/bin/如下图:(注意这个路径是你安装的路径,由于我安装在d盘的根目录下,所以开头是d:) 输入以下命令snort –W,如下显示你的网卡信息,说明安装成功了!别高兴的太早,这只是安装成功了软件包,下面还要安装规则库:

Snort网络入侵检测五种病毒

入侵检测技术实验Snort网络入侵检测 学院: 班级: 姓名: 学号:

一、实验目的 1)掌握数据库的使用方法和MySQLfront的安装使用方法 2)掌握wireshark抓取数据包分析关键特征以及相关格式内容 3)掌握病毒的工作原理和通信过程,交互的信息 4)将这门课的内容结合实际进行分析和实践 二、实验原理 1)实验环境: WinPcap_4_1_2.exe 网络数据包截取驱动程序 Snort_2_9_1_Installer.exe Windows 版本的Snort 安装包 mysql-5.5.18-win32.msi Windows 版本的mysql安装包 MySQL_Front_Setup.1765185107.exe mysql数据库可视化软件 snortrules-snapshot-CURRENT.tar.gz Snort规则库 Wireshark-win32-1.12.0.1410492379.exe抓包分析工具 2)实验环境的搭建 按照所给文档“Windows XP下安装配置Snort”的提示安装所需的软件,下面几个图片是成功安装的图片:

图(1)建立snort库 图(2)成功建立snort库

图(3)成功启动snort进行检测 至此,实验环境搭配成功。 三、实验内容 1)测试检测效果 测试虽然成功启动snort,但不能确定是否成功,故此测试任意IP端口 进行测试 配置此时的规则,修改local.rules文件,改规则为:alert ip any any -> any any (msg: "IP Packet detected";sid:1000000;) 此时结果如下图:

实训-Snort安装与配置

Snort安装与配置 Snort是免费NIPS及NIDS软件,具有对数据流量分析和对网络数据包进行协议分析处理的能力,通过灵活可定制的规则库(Rules),可对处理的报文内容进行搜索和匹配,能够检测出各种攻击,并进行实时预警。 Snort支持三种工作模式:嗅探器、数据包记录器、网络入侵检测系统,支持多种操作系统,如Fedora、Centos、FreeBSD、Windows等,本次实训使用Centos 7,安装Snort 2.9.11.1。实训任务 在Centos 7系统上安装Snort 3并配置规则。 实训目的 1.掌握在Centos 7系统上安装Snort 3的方法; 2.深刻理解入侵检测系统的作用和用法; 3.明白入侵检测规则的配置。 实训步骤 1.安装Centos 7 Minimal系统 安装过程不做过多叙述,这里配置2GB内存,20GB硬盘。 2.基础环境配置 根据实际网络连接情况配置网卡信息,使虚拟机能够连接网络。 # vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" NAME="eno16777736" UUID="51b90454-dc80-46ee-93a0-22608569f413" DEVICE="eno16777736" ONBOOT="yes" IPADDR="192.168.88.222" PREFIX="24" GATEWAY="192.168.88.2" DNS1=114.114.114.114 ~

snort入侵检测技术

Snort入侵检测系统分析 2015年12月6日 Snort入侵检测系统分析 简介 Snort的一些源代码是从著名的TCPDUMP软件发展而来的。snort是一个基于LIBPCA包的网络监控软件,可以作为一个十分有效的网络入侵监测系统。它运行在一个“传感器”主机上,监听网络数据。这台机器可能是一台简陋的运行FREEBSD系统的Pentium100 PC,并且至少有一个网卡。 Snort首先根据远端的IP地址建立目录,然后将检测到的包以TCPDUMP的二进制格式记录或者以自身的解码形式存储到这些目录中.这样一来,你就可以使用snort来监测或过滤你所需要的包.Snort是一个轻量级的入侵检测系统,它具有截取网络数据报文,进行网络数据实时分析、报警,以及日志的能力。snort的报文截取代码是基于LIBPCA库的,继承了LIBPCA库的平台兼容性。它能够进行协议分析,内容搜索/匹配,能够用来检测各种攻击和探测,例如:缓冲区溢出、隐秘端口扫描、CGI 攻击、SMB探测、OS指纹特征检测等等。snort使用一种灵活的规则语言来描述网络数据报文,因此可以对新的攻击作出快速地翻译。snort具有实时报警能力。可以将报警信息写到syslog、指定的文件、UNIX套接字或者使用Winpopup消息。snort具有良好的扩展能力。它支持插件体系,可以通过其定义的接口,很方便地加入新的功能。snort还能够记录网络数据,其日志文件可以是TCPDUMP格式,

也可以是解码的ASCII格式。简单的说,Snort是数据包的嗅探器,也是数据包记录器,还是NIDS。提供数据包嗅探和记录功能只是Snort的部分功能,Snort 的特点就是其入侵检测功能—根据入侵规则匹配数据包中的内容。Snort还是一个自由,简介,快速,易于扩展的入侵检测系统,已经被移植到了各种UNIX平台和winY2k上。同时,它也是目前安全领域中,最活跃的开放源码工程之一。 体系结构 Snort有5个主要部件:捕包程序库libpcap、包解码器、预处理程序、检索引擎、输出组件。 图1 Snort组件数据流程图 捕包装置把包以原始状态捕获后送给解码器。解码器是进入Snort的第一步,它将特殊协议元素翻译成内部数据结构。它的目的是剥落包头。利用TCP-IP 栈解码并且将包放入一个数据结构中。在最初的捕包和解码完成后,有预处理程序处理流量。许多插入式预处理程序对包进行检查或操作后将它们交给下一个组件——检索引擎。检索引擎对每一个包的一个方面进行简单的检验以检测入侵。最后一个组件是输出插件,它对可疑行为产生报警。大规模的应用程序很少采用单机模式,Snort通常采用分布式体系对网络进行入侵检测。最典型的安装方式是三层体系,即传感器层、服务器层、分析员控制台。 捕包程序库libpcap和包解码器运行在传感器上,负责对抓来的包进行解释并传递警报。由于传感器必须放置在要监控入侵的网段,为了保证安全,通常只安装Snort和它在之上运行的支撑应用程序。建议Linux或BSD等UNIX类型的操作系统。传感器的两块网卡一块用作捕包接口不分配IP,一块用作管理接口分配IP。捕包程序库libpcap运行在Libpcap平台上,由于Libpcap平台的独立性使得Snort可以被移植到任何地方,成为一个真正与平台无关的应用程序。预处理程序 预处理是Snort的一类插件。它在检测引擎之前对数据进行处理,并且努力与不断变化的漏洞和攻击保持同步。可以添加新的协议为Snort提供支持。它既

Snort中文手册范本

Snort 用户手册 Snail.W 第一章 snort简介 snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网路入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。嗅探器所谓的嗅探器模式就是snort从网络上读出数据包然后显示在你的控制台上。首先,我们从最基本的用法入手。如果你只要把TCP/IP信息打印在屏幕上,只需要输入下面的命令:./snort -v 使用这个命令将使snort只输出IP和TCP/UDP/ICMP的信息。如果你要看到应用层的数据,可以使用:./snort -vd 这条命令使snort在输出信息的同时显示包的数据信息。如果你还要显示数据链路层的信息,就使用下面的命令:./snort -vde 注意这些选项开关还可以分开写或者任意结合在一块。例如:下面的命令就和上面最后的一条命令等价:./snort -d -v –e 数据包记录器如果要把所有的包记录到硬盘上,你需要指定一个日志目录,snort就会自动记录数据包:./snort -dev -l ./log 当然,./log目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,例如:192.168.10.1 如果你只指定了-l命令开关,而没有设置目录名,snort有时会使用远程主机的IP地址作为目录,有时会使用本地主机IP地址作为目录名。为了只对本地网络进行日志,你需要给出本地网络:./snort -dev -l ./log -h 192.168.1.0/24 这个命令告诉snort把进入C类网络192.168.1的所有包的数据链路、TCP/IP以及应用层的数据记录到目录./log中。如果你的网络速度很快,或者你想使日志更加紧凑以便以后的分析,那么应该使用二进制的日志文件格式。所谓的二进制日志文件格式就是tcpdump程序使用的格式。使用下面的命令可以把所有的包记录到一个单一的二进制文件中:./snort -l ./log -b 注意此处的命令行和上面的有很大的不同。我们勿需指定本地网络,因为所有的东西都被记录到一个单一的文件。你也不必冗余模式或者使用-d、-e功能选项,因为数据包中的所有容都会被记录到日志文件中。你可以使用任何支持tcpdump二进制格式的嗅探器程序从这个文件中读出数据包,例如:tcpdump或者Ethereal。使用-r功能开关,也能使snort读出包的数据。snort在所有运行模式下都能够处理tcpdump格式的文件。例如:如果你想在嗅探器模式下把一个tcpdump格式的二进制文件中的包打印到屏幕上,可以输入下面的命令:./snort -dv -r packet.log 在日志包和入侵检测模式下,通过BPF(BSD Packet Filter)接口,你可以使用许多方式维护日志文件中的数据。例如,你只想从日志文件中提取ICMP 包,只需要输入下面的命令行:./snort -dvr packet.log icmp 网络入侵检测系统snort最重要的用途还是作为网络入侵检测系统(NIDS),使用下面命令行可以启动这种模式:./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf snort.conf是规则集文件。snort会对每个包和规则集进行匹配,发现这样的包就采取相应的行动。如果你不指定输出目录,snort就输出到/var/log/snort目录。注意:如果你想长期使用snort作为自己的入侵检测系统,最好不要使用-v选项。因为使用这个选项,使snort向屏幕上输出一些信息,会大大降低snort的处理速度,从而在向显示器输出的过程中丢弃一些包。此外,在绝大多数情况下,也没有必要记录数据链路层的,所以-e选项也可以不用:./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf 这是使用snort作为网络入侵检测系统最基本的形式,日志符合规则的包,以ASCII形式保存在有层次的目录结构中。网络入侵检测模式下的输出选项在NIDS模式下,有很多的方式来配置snort的输出。在默认情况下,snort以ASCII格式记录日志,使用full报警机制。如果使用full报警机制,snort会在之后打印报警消息。如果你不需要日志包,可以使用-N选项。 snort有6种报警机制:full、fast、socket、syslog、smb(winpopup)和none。其中有4个可以在命令行

snort规则选项

snort规则选项 规则选项组成了入侵检测引擎的核心,既易用又强大还灵活。所有的snort规则选项用分号";"隔开。规则选项关键字和它们的参数用冒号":"分开。按照这种写法,snort中有42个规则选 项关键字。 msg - 在报警和包日志中打印一个消息。 logto - 把包记录到用户指定的文件中而不是记录到标准输出。 ttl - 检查ip头的ttl的值。 tos 检查IP头中TOS字段的值。 id - 检查ip头的分片id值。 ipoption 查看IP选项字段的特定编码。 fragbits 检查IP头的分段位。 dsize - 检查包的净荷尺寸的值。 flags -检查tcp flags的值。 seq - 检查tcp顺序号的值。 ack - 检查tcp应答(acknowledgement)的值。 window 测试TCP窗口域的特殊值。 itype - 检查icmp type的值。 icode - 检查icmp code的值。 icmp_id - 检查ICMP ECHO ID的值。 icmp_seq - 检查ICMP ECHO 顺序号的值。 content - 在包的净荷中搜索指定的样式。 content-list 在数据包载荷中搜索一个模式集合。 offset - content选项的修饰符,设定开始搜索的位置。 depth - content选项的修饰符,设定搜索的最大深度。 nocase - 指定对content字符串大小写不敏感。 session - 记录指定会话的应用层信息的内容。 rpc - 监视特定应用/进程调用的RPC服务。 resp - 主动反应(切断连接等)。 react - 响应动作(阻塞web站点)。 reference - 外部攻击参考ids。 sid - snort规则id。 rev - 规则版本号。 classtype - 规则类别标识。 priority - 规则优先级标识号。 uricontent - 在数据包的URI部分搜索一个内容。 tag - 规则的高级记录行为。 ip_proto - IP头的协议字段值。 sameip - 判定源IP和目的IP是否相等。 stateless - 忽略刘状态的有效性。 regex - 通配符模式匹配。 distance - 强迫关系模式匹配所跳过的距离。 within - 强迫关系模式匹配所在的范围。

Snort入侵检测系统

Snort入侵检测系统 赵鹏通信一团技术室 摘要本文介绍了Snort入侵检测系统的结构、功能。具体介绍了Snort入侵检测系统各部件的功能,并分析了Snort入侵检测系统的优缺点。 关键词IDS 特征检测规则分析预处理净荷 1 概述 Snort是由一个简单的网络管理工具发展分布式入侵检测系统,被用于各种与入侵检测相关的活动,可以用作嗅探器、包记录器或者网络入侵检测系统NIDS。 作嗅探器时,Snort对发往同一个网络其他主机的流量进行捕获。嗅探器利用了以太网的共享特性。它将网路上传输的每一个包的内容都显示在你的监视器上,包括包头和包载荷。 以包记录器模式运行时,Snort以和嗅探器相似的方式抓包,不同的是将收集的数据记入日志而不是显示在屏幕上。 当Snort以网络入侵检测系统(NIDS)模式运行时,Snort也抓取并存储网络上传输的每一个包,关键的不同在于NIDS模式能对数据进行处理。这种处理不是简单的将数据写入文件或是显示在屏幕上,而是对每一个包进行检查以决定它的本质是良性的还是恶意的。当发现看似可疑的流量是,Snort就会发出报警。 NIDS因其能监控大片网段而比其他类型的IDS更受欢迎,这里要关注的是NIDS模式的Snort。 2 Snort入侵检测系统的组成 Snort有5个主要部件:捕包程序库libpcap、包解码器、预处理程序、检索引擎、输出组件。 图1 Snort组件数据流程图 捕包装置把包以原始状态捕获后送给解码器。解码器是进入Snort的第一步,它将特殊协议元素翻译成内部数据结构。它的目的是剥落包头。利用TCP-IP栈解码并且将包放入

一个数据结构中。在最初的捕包和解码完成后,有预处理程序处理流量。许多插入式预处理程序对包进行检查或操作后将它们交给下一个组件——检索引擎。检索引擎对每一个包的一个方面进行简单的检验以检测入侵。最后一个组件是输出插件,它对可疑行为产生报警。 2.1 捕包程序库libpcap和包解码器 大规模的应用程序很少采用单机模式,Snort通常采用分布式体系对网络进行入侵检测。最典型的安装方式是三层体系,即传感器层、服务器层、分析员控制台。 捕包程序库libpcap和包解码器运行在传感器上,负责对抓来的包进行解释并传递警报。由于传感器必须放置在要监控入侵的网段,为了保证安全,通常只安装Snort和它在之上运行的支撑应用程序。建议Linux或BSD等UNIX类型的操作系统。传感器的两块网卡一块用作捕包接口不分配IP,一块用作管理接口分配IP。捕包程序库libpcap运行在Libpcap平台上,由于Libpcap平台的独立性使得Snort可以被移植到任何地方,成为一个真正与平台无关的应用程序。 2.2 预处理程序 预处理是Snort的一类插件。它在检测引擎之前对数据进行处理,并且努力与不断变化的漏洞和攻击保持同步。可以添加新的协议为Snort提供支持。它既能对数据包操作以便检测引擎能正确分析包,又能检测特征检测所不能单独发现的可疑流量。按功能可以分为三类:数据标准化,协议分析和非特征匹配检测。 数据标准化 新的攻击方法和IDS躲避技术不断涌现,以至Snort的检测引擎要么不能检测,要么检测效率不高。预处理程序可以将数据标准化以便检测引擎能正确对其分析。 多态病毒是为了躲避反病毒程序的特征匹配引擎而将病毒代码任意改造和变异。同样的技术也被用于远程利用,shell代码具有多种形态。Fnord预处理程序能检测出变异的NO-OP sled,从而避免了由于缓冲区溢出使处理器强制执行恶意代码导致的程序崩溃。No-op sled能被许多IDS轻易地检测到,除非它在每次被使用时都做修改。如果没有Fnord预处理,Snort将无法检测多态shell代码。 协议分析 由于检测引擎能分析的协议很少,所以用协议处理程序来协助检测。ASNI_decode就能检测ASNI(Abstract Syntax Notation抽象语法标记)协议中的不一致性。较高的协议比如SNMP、LDAP和SSL都依赖ASNI。几乎所有起用SNMP的设备都受到缓冲区溢出或是拒绝服务(DoS)攻击的影响。 非特征匹配检测 这类预处理程序利用不同特征匹配的方法来捕获恶意流量。例如所谓的侦察攻击通常只是一个报警信号,无法确定是不是攻击。信息收集尝试利用了不合规格的流量,但这些流量通常在性质上是无害的。Portscan2和stream4就能发现这类流量和一些恶意黑客使用的躲避技术。 2.3 检测引擎 检测引擎是Snort的一个主要部件,有两个主要功能:规则分析和特征检测。检测引擎通过分析Snort规则来建立攻击特征。Snort规则被载入到检测引擎并以树形数据结构分

IDS_snort安装配置-推荐参考

标题:Snort入侵检测系统的配置安装 作者:CmdH4ck 工作平台:VMware虚拟机 服务平台:windows server2003(安装snort) 辅助平台:windows xp(进行入侵测试) 工具:Apache服务器 Php语言 Winpcap网络驱动 Snort入侵检测系统 MY SQL数据库 adodb组件 jgraph组件 acid组件 snort规则包 具体操作步骤: 在C盘新建一个IDS文件夹,所需的工具软件安装在此文件夹内 1.安装Apache服务器(图1——图5) 安装时先将iss的服务关闭,防止造成端口冲突,如图.1 图1 关闭IIS服务后即可安装Apache服务器(没有截图的,默认点击下一步) 图2

图3 图4 安装完成之后,打开浏览器,输入http://localhost,出现以下内容,则表示安装成功

图5 2.安装php 解压php-5.2.6-win32.zip到c:\ids\php5\下,如图6 图6 复制c:\ids\php5\目录下的php5ts.dll到C:\WINDOWS\system32目录下

复制c:\ids\php5\目录下的php.ini-dist到c:\windows目录下,并重命名为php.ini。 修改C:\ids\apache\conf\httpd.conf文件,加入apache对php的支持。 加入loadmodule php5_module c:/ids/php5/php5apache2_2.dll(如图7) 图7 添加类型:加入:addtype application/x-httpd-php .php (如图8) 图8 修改c:\windows\php.ini文件,去掉extension=php_gd2.dll前面的分号,使之支持gd2 图9 复制c:\ids\php5\ext文件夹下的php_gd2.dll文件到c:\windows文件夹下 以上配置完成后,重启下apache服务器。然后在apache网页存放目录下(C:\ids\apache\htdocs)编写test.php,内容为 (用记事本编写,后缀改为php即可)

windows下snort安装步骤

Snort在Windows下的集成式安装一.1.安装Snort和Wincap包 2.AppServ 3.安装AppServ 在Server Name中输入域名localhost: Administrator's Email Address 中输入邮箱地址:safdsafas@https://www.doczj.com/doc/9c1160913.html, 监听端口设为8080。 点击next,进入下一界面: 在出现的界面中输入密码(enter root password): "Character Sets and Collations"选择"GB 2312Simplified Chese", 下图所示:

然后单击"Install",进入安装过程,出现下图: 安装完成后将C:\Appserv\php5目录下的php.ini-dist 文件改名为php.Ini,并启动Apache和MySql。

(控制面板—管理—服务确保Apache和MySql已启动) 安装完成后可以查看(MySQL启动如下图) 在浏览器中输入http://localhost :8080 出现: 表示安装成功! (2)测试AppServ 首先查看"控制面板"/"管理"/"服务",确保Apache和MySQL已经启动,然后,在浏览器中输入http://localhost :8080/phpinfo.php,(下图)

可以了解php的一些信息。 最后打开浏览器,输入http://localhost :8080/phpMyAdmin/index.php,(下图)输入用户名root和密码,可以浏览数据库内容 (1)配置AppServ 第一步编辑Apache服务器配置文件。打开Apache2.2\conf文件中的

相关主题
文本预览
相关文档 最新文档