版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
入侵检测与防范技术(IDS/IPS)综述与分析卓雪君
学号:2007310381
(清华大学计算机科学与技术系,北京市100084)摘要:本文从入侵检测/入侵防范的概念入手,对两者的技术特点,原理进行了详细的分析,进而讨论了入侵检测和入侵防范之间的关系。并在此基础上对入侵检测/入侵防范产品进行了调研,着重对开源IDS软件snort进行了介绍。最后给出了一系列反入侵检测技术,并提出了入侵检测/入侵防范技术所存在的问题以及发展趋势。关键字:入侵检测系统、入侵防范系统、安全IntrusionDetectionSystemandIntrusionPreventionSystem:
ASurvey
ZhuoXue-JunDept.ofComputerScienceandTechnology,TsinghuaUniversity,Beijing
100084,ChinaAbstract:StartingfromtheconceptofIntrusionDetectionandIntrusionProtection,thisarticlepresentsadetailedanalysisoftheirtechnologicalcharacteristicsandprinciples,andthendiscussestheirrelationships.Basedonthis,thearticlegivesasurveyoftheintrusiondetection/protectionproductsandputthefocusontheopen-sourceIDS(IntrusionDetectionSystem)softwaresnort.Atlast,aseriesofanti-intrusiondetectiontechniquesareintroduced,aswellassomeexistingproblemsandfuturetrendoftheintrusiondetection/protectiontechnology.KeyWords:IntrusionDetectionSystem;IntrusionPreventionSystem;Security计算机安全逐步成为一个国际化的问题,每年全球因为计算机安全系统被破坏而造成的经济损失也在不断飙升。对于企业、机关乃至个人来说,如何保护自身的安全不受到黑客的攻击成为了一个现实而至关重要的问题。传统的网络安全防范工具是防火墙,它是一种用来加强网络之间访问控制的特殊网络互联设备,通过对两个或多个网络之间传输的数据包和链接方式按照一定的安全策略进行检查,来决定网络之间的通信是否被允许。防火墙能有效地控制内部网络与外部网络之间的访问及数据传送,从而达到保护内部网络的信息不受外部非授权用户的访问和过滤不良信息的目的。但是防火墙不能防止来自网络内部的攻击,而事实证明往往大部分的攻击都是来自网络内部,此外由于防火墙性能的限制使得它不具备实时监控入侵的能力。在这个需求背景下,入侵检测技术乃至入侵防范便应运而生,可以弥补防火墙的不足,为网络提供实时的监控,并结合其他的网络安全产品,在网络系统受到威胁之前对入侵行为做出实时反应。1.IDS/IPS技术介绍入侵指的是破坏目标系统资源的完整性、机密性或可用性的一系列活动,入侵检测系统所检测的入侵行为不包括物理入侵,而是仅包括从系统内部或者外部发起的,尝试或者实施对系统资源的非授权访问、操纵或破环的行为[1,2]。入侵检测系统IDS(IntrusionDetectionSystem)是通过收集网络系统信息来进行入侵分析的软件与硬件的智能组合。对IDS进行标准化工作的两个组织分别是作为国际互联网标准的制定者IETF的IntrusionDetectionworkingGroup(IDWG,入侵检测工作组)和CommonIntrusionDetectionFramework(CIDF,通用入侵检测框架)。入侵防范系统IPS(IntrusionPreventionSystem)的功能是不仅能实时检测网络信息,发现识别出入侵信息,主动智能进行防御。如一旦发现有攻击行为,立即相应主动切断连接。IDS和IPS都属于网络入侵检测技术,两者在技术应用上有着很多相同点,但其防御手段却有着很大的区别。入侵检测的基本模型从1984年到1986年间,乔治敦大学的DorothyDenning⑶和SRI/CSL(SRI公司计算机科学实验室)的PeterNeumann最早所提出的入侵检测系统的抽象模型主要由主体、对象、审计记录、异常记录、活动规则和活动文档六部分组成。为了使分布在网络中不同主机上的IDS能够互相通信,交换检测数据和分析结果,StuartStaniford-Chen等人提出了公共入侵检测框架(CommonIntrusionDetectionFramework,CIDF)[4]。CIDF中阐述了一个入侵检测系统的通用模型,它将入侵检测系统分成了四个组件如图1.1所示。事件产生器(EventGenerators):从计算机网络中获取数据包或从计算机系统日志中获取信息。事件分析器(EventAnalyzers):分析事件产生器获取的事件,做出总结。⑶响应单元(ResponseUnits):根据事件分析器分析的结果做出响应,保护被保护系统免受攻击和破坏。(4)事件数据库(EventDatabases):记录事件产生器产生的所有事件以及事件分析器对事件分析的结果。图1.1CIDF入侵检测通用模型入侵检测系统分类入侵检测系统按照不同的角度可以有不同的分类方法[6,7]。根据检测的方法分类入侵检测系统根据采用的分析方法可以分为异常检测和误用检测两类。异常检测又被称为基于行为或基于统计的入侵检测。它是通过预先定义一组系统正常的数据值,然后根据系统运行时的数据值和已经定义好的正常数据值进行比较,最后得出是否有被攻击的迹象[8]。这种方式可以检测出未知的攻击类型,但是往往误报率比较高。误用检测又被称为基于知识或基于特征的入侵检测。它从已有的各类攻击中提取出攻击的模式特征,形成规则库。任何与规则库中的模式相一致的都被认为是入侵行为。这种检测方法误报率低,但只能检测已有的攻击,存在一定的漏报率。根据数据源的分类入侵检测系统根据数据源的分类可以分为基于主机的入侵检测和基于网络的入侵检测。基于主机的入侵检测系统(HIDS)是通过分析主机上的系统日志和应用程序日志等信息,来判断是否发生了入侵。HIDS通常情况下比NIDS误报率要低,因为检测在主机上运行的命令比检测网络流更简单,系统的复杂性也少得多。但是HIDS必须为不同的平台开发不同的程序,而且全面部署HIDS的代价也非常大,此外因为它对于网络上的情况不予以监视,所以对入侵检测行为的分析工作量将随着主机数目增加而增加。基于网络的入侵检测系统(NIDS)是通过分析关键网络段或重点部位的数据包,来实时判断是否有网络攻击⑼。NIDS有一个非常显著的优点是一个网段上只需安装一个或几个这样的系统,便可以检测整个网段的情况,但这种方式不能解析监听到的加密信息以及交换网络上的数据包,而且在高速网络上监听数据包时会大大增加系统的开销。根据体系结构分类入侵检测系统根据体系结构可分为集中式入侵检测系统和分布式入侵检测系统。集中式入侵检测系统是指分析部件位于固定数量的场地,包括基于主机的集中式入侵检测系统和基于网络的集中式入侵检测系统。分布式入侵检测系统是指运行数据分析部件的场地和被监测的主机的数量成比例,通过分布在不同主机或网络上的监测实体来协同完成检测任务。根据响应方式分类入侵检测系统根据响应方式可分为主动响应入侵检测系统和被动响应入侵检测系统。(1)主动响应入侵检测系统是指当一个特定类型的入侵被检测到时,它会自动收集辅助信息,或改变当时的环境以堵住入侵发生的漏洞,甚至可以对攻击者采取行动。(2)被动响应入侵检测系统是指当入侵检测系统检测到入侵信息时,把入侵信息递交给网络管理员处理。入侵检测技术异常入侵检测技术基于异常入侵检测技术的IDS工作原理如图1.2所示:图1.2基于异常检测IDS工作原理图(1)基于统计的异常检测技术基于统计的异常检测技术通过对系统审计中的数据进行统计处理,然后与描述主体正常行为的统计性特征进行比较,最后根据两者之间的偏差是否超过指定的限度来判断是否有入侵行为发生。在这种方法中入侵检测系统可以主动学习主体的日常行为,并将那些与正常行为偏差较大的行为标志为异常,产生告警。(2)基于特征选择的异常检测技术基于特征选择的异常检测技术是通过从一组度量中选择出能够检测入侵的度量构成子集,从而预测或分类检测到的入侵行为。异常检测的关键在于难以区分异常行为和入侵行为,选择合适的度量也很困难。度量子集的选取依赖于入侵的类型,一个度量不可能适应于所有的入侵类型。基于神经网络的异常检测技术基于神经网络的异常检测技术是通过对系统提供的审计数据的自学习过程,从中提取正常用户或系统活动的特征模式。该方法的关键是在检测前必须对入侵样本进行训练,使其具备对某些入侵行为进行分类的能力,从而能够正确识别入侵行为。基于计算机免疫技术的异常检测方法计算机免疫技术是通过模仿生物有机体的免疫系统工作机制,使得受保护的系统能够区分正常的行为和非正常的行为。它首先利用系统进程正常执行的轨迹中的系统调用短序列集来构造系统进程正常执行活动的特征轮廓,并实时检测系统进程是否符合正常的特征轮廓。误用入侵检测技术基于异常入侵检测技术的IDS工作原理如图1.3所示:审计数据致分析入侵特征偏离正常行为入侵行为新的入侵模式入侵响应图审计数据致分析入侵特征偏离正常行为入侵行为新的入侵模式入侵响应图1.3基于误用检测IDS工作原理图基于专家系统的误用检测技术基于专家系统的检测方法也称基于规则的检测方法。该方法根据安全专家对可疑行为进行分析的经验形成一套推理的规则,然后运用推理算法来检测入侵。snort入侵检测系统就采用了这种方法。基于状态迁移分析的误用检测技术入侵行为是攻击者执行的一系列操作,使系统从某一种初始状态转到一个危及系统安全的状态。其中的初始状态代表入侵前的系统状态,而危及系统安全的状态则代表入侵发生后的系统状态。这样在这两个状态之间可能存在一个或多个中间状态的迁移。而状态迁移分析主要是考虑入侵行为对这其中的中间状态迁移的影响,这种方法可以检测出协同攻击和时间跨度较大的攻击,但这种方法中的状态和转换动作很难进行精确的表达,且只适合于那些多个步骤间具有全序关系的入侵行为的检测。基于模式匹配的误用检测技术模式匹配就是通过提取已有攻击信息的特征编码成模式,然后将审计信息与该模式进行匹配,从中发现是否存在攻击行为。该方法原理简单,可扩展性好,准确率和效率都很高,可以实时检测,且技术已经相当成熟,但需要不断升级已有的模式库以便检测新的攻击,以及不能检测出从未出现过的攻击。入侵防范系统分类入侵防范系统分类方式与入侵检测系统类似,可以分为:基于主机的入侵防范系统(HIPS)HIPS通过在主机/服务器上安装代理程序,防止网络攻击入侵操作系统以及应用程序。基于主机的入侵防护能够保护服务器的安全弱点不被不法分子所利用。基于主机的入侵防护技术可以根据自定义的安全策略以及分析学习机制来阻断对服务器、主机发起的恶意入侵。HIPS可以阻断缓冲区溢出、改变登录口令、改写动态链接库以及其他试图从操作系统夺取控制权的入侵行为,整体提升主机的安全水平。在技术上,HIPS采用独特的服务器保护途径,利用由包过滤、状态包检测和实时入侵检测组成分层防护体系。这种体系能够在提供合理吞吐率的前提下,最大限度地保护服务器的敏感内容,既可以以软件形式嵌入到应用程序对操作系统的调用当中,通过拦截针对操作系统的可疑调用,提供对主机的安全防护;也可以以更改操作系统内核程序的方式,提供比操作系统更加严谨的安全控制机制。由于HIPS工作在受保护的主机/服务器上,它不但能够利用特征和行为规则检测,阻止诸如缓冲区溢出之类的已知攻击,还能够防范未知攻击,防止针对Web页面、应用和资源的未授权的任何非法访问。与HIDS类似HIPS与具体的主机/服务器操作系统平台紧密相关,不同的平台需要不同的软件代理程序。⑵基于网络的入侵防范系统(NIPS)NIPS通过检测流经的网络流量,提供对网络系统的安全保护。由于它采用在线连接方式,所以一旦辨识出入侵行为,NIPS就可以去除整个网络会话,而不仅仅是复位会话。同样由于实时在线,NIPS需要具备很高的性能,以免成为网络的瓶颈,因此NIPS通常被设计成类似于交换机的网络设备,提供线速吞吐速率以及多个网络端口。NIPS必须基于特定的硬件平台,才能实现千兆级网络流量的深度数据包检测和阻断功能。这种特定的硬件平台通常可以分为三类:一类是网络处理器,一类是专用的FPGA编程芯片,第三类是专用的ASIC芯片。在技术上,NIPS吸取了目前NIDS所有的成熟技术,包括特征匹配、协议分析和异常检测。特征匹配是最广泛应用的技术,具有准确率高、速度快的特点。基于状态的特征匹配不但检测攻击行为的特征,还要检查当前网络的会话状态,避免受到欺骗攻击。协议分析是一种较新的入侵检测技术,它充分利用网络协议的高度有序性,并结合高速数据包捕捉和协议分析,来快速检测某种攻击特征。协议分析正在逐渐进入成熟应用阶段。协议分析能够理解不同协议的工作原理,以此分析这些协议的数据包,来寻找可疑或不正常的访问行为。协议分析不仅仅基于协议标准,还基于协议的具体实现,这是因为很多协议的实现偏离了协议标准。通过协议分析,IPS能够针对插入与规避攻击进行检测。但是异常检测的误报率比较高,NIPS不将其作为主要技术。入侵防范技术IDS通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹象,并产生告警,因此绝大多数IDS系统是被动的,在攻击实际发生之前,它们往往无法预先发出警报,而且在入侵发生后也不能主动采取一些防护措施。而入侵检测系统(IPS)则倾向于提供主动防御,其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失,而不是简单的在恶意流量传送时或传送后才发出警报。IPS是通过直接嵌入到网络流量中来实现这一功能的,即通过一个网络端口接收来自外部系统的流量,经过检查确定其中不包含异常活动或可疑内容后,在通过另一个端口允许其继续向前传输。这样有问题的数据包,以及所有来自同一数据流的后续数据包都可以在IPS中被拦截下来。其工作原理如图1.4所示:IPS实现实时检查和阻止入侵的原理在于IPS拥有数目众多的过滤器,能够防止各种攻击。当新的攻击手段被发现之后,IPS就会创建一个新的过滤器。IPS数据包处理引擎是专业化定制的集成电路,可以深层检查数据包的内容。如果有攻击者利用从2层到5层的漏洞发起攻击,IPS都能够从数据流中检查出这些攻击并加以阻止。而传统的防火墙只能对3层和4层进行检查,不能检测应用层的内容。此外防火墙的包过滤技术不会针对每一字节进行检查,而IPS可以做到逐一字节地检查数据包。所有流经IPS的数据包都被分类,分类的依据是数据包中的报头信息,如源IP地址和目的IP地址、端口号和应用域。每种过滤器负责分析相对应的数据包。通过检查的数据包可以继续前进,包含恶意内容的数据包就会被丢弃,被怀疑的数据包需要接受进一步的检查。针对不同的攻击行为,IPS需要不同的过滤器。每种过滤器都设有相应的过滤规则,为了确保准确性,这些规则的定义非常广泛。在对传输内容进行分类时,过滤引擎还需要参照数据包的信息参数,并将其解析至一个有意义的域中进行上下文分析,以提高过滤准确性。综上所述,IPS需要具有如下的基本特性:嵌入式运行:只有以嵌入模式运行的IPS设备才能够实现实时的安全防护,实时阻拦所有可疑的数据包,并对该数据流的剩余部分进行拦截。深入分析和控制:IPS必须具有深入分析能力,以确定哪些恶意流量已经被拦截,根据攻击类型、策略等来确定哪些流量应该被拦截。入侵特征库:高质量的入侵特征库是IPS高效运行的必要条件,IPS还应该定期升级入侵特征库,并快速应用到所有传感器。高效处理能力:IPS必须具有高效处理数据包的能力,对整个网络性能的影响保持在最低水平。入侵检测系统与入侵防范系统关系从工作原理和检测机制上来看,IDS和IPS的共同点在于它们都是要求接入网络,对网络上的数据进行审计,根据事先定义好的安全策略对分析得到的结果做出判断和响应。而不同之处在于IDS受检测机制影响往往安装在网络的旁路上,被动的监听网络,是一种并联的接入方式。而IPS是串联到网络中的,以主动的方式检测网络信息流。这样对于IPS性能要求往往更高。而在数据保护和内容安全方面,IPS没有太多的建树,与此相比IDS在检测网络流和追查非法访问方面具有优势,可以帮助用户保护数据安全。但是IDS的响应能力十分有限,除了进行TCP复位和请求更改防火墙规则外,IDS不能进一步的对攻击行为做出响应,IPS则倾向于提供主动的防护,它可以预先对入侵活动和攻击性的网络流量进行拦截。2003年,Gartner公司副总裁RichardStiennon发表了一篇题为入侵检测已寿终正寝,入侵防御将万古长青的报告,在当时引发了安全业界的震动。但是至今关于IDS和IPS关系的讨论已逐步趋于平淡,特别是在2006年IDC年度安全市场报告中,明确指出IDS和IPS是两个独立的市场。目前来看无论是从业界还是用户的角度来看普遍都认为IDS和IPS是两类产品,其侧重点不一样,IDS注重的是网络安全状况的监管,而IPS关注的是对入侵行为的控制,如图1.5所示:综上所述,不同的部署目标决定了IPS和IDS各自的不同的定位。从需求角度来说,可以拟定三种部署情况:
(1)只需要IPS,不需要IDS,这种情况的使用环境是只关注风险控制,而并不关注风险管理的用户,比如低风险的行业,如图1.6所示:LANLANWANLAN图WANLAN图1.6只需部署IPS示意图(2)只需要IDS,不需要IPS,这种情况往往适用于监控机构,他们只需要对用户的安全状况做了解,而不用对入侵行为做出防御,如图1.7所示:LAN图LAN图1.6只需部署IDS示意图既需要IDS也需要IPS,这种情况适用于高风险行业用户,既需要关注风险管理与风险控制,又需要通过风险管理不断完善风险控制措施,如图1.8所示:图1.6既需部署IDS又需部署IPS示意图2.IDS/IPS产品调研国内外IDS/IPS产品概况绝大多数的入侵检测产品都以纯软件的形式出售,但为了达到性能最佳,往往需要对安装的系统进行优化调整。这样把产品做成黑盒子的形式出售就可以达到目的,如Cisco公司的SecureIDS和金诺网安的KIDS等。同时随着入侵检测产品在规模庞大企业中的应用越来越广泛,分布式技术也开始融入到入侵检测产品中来,目前绝大多数的入侵检测产品尤其是企业级的产品都具有分布式结构。基于网络的入侵检测产品放置在比较重要的网段内,对每一个数据包或可疑的数据包进行特征分析。商品化的产品包括:国外的ISSRealSecureNetworkSensor、CiscoSecureIDS、CAe-TrustIDS、Axent的NetProwler,以及国内的金诺网安KIDS、北方计算中心NISDetector、启明星辰天阗黑客入侵检测与预警系统和中科网威天眼网络入侵侦测系统等。基于主机的入侵检测产品主要对主机的网络实时连接以及系统审计日志进行智能分析和判断。基于主机的入侵检测系统有:ISSRealSecureOSSensor、Emeraldexpert-BSM、金诺网安KIDS等。混合式入侵检测系统综合了基于网络和主机的两种结构特点,既可发现网络中的攻击信息,也可从系统日志中发现异常情况。商品化产品有:ISSServerSensor、NAICyberCopMonitor、金诺网安KIDS等。文件完整性检查工具通过检查文件的数字摘要与其他一些属性,判断文件是否被修改,从而检测出可能的入侵。这个领域的产品有半开放源代码的Tripwire等。在全球范围内,根据Infonetics研究公司2007年9月的报告显示,第三季度全球IDS/IPS产品收入为1.35亿美元,比第二季度下滑1%,预计2008年第三季度会上升至1.82美元,涨幅可达到35%。预计2007年IDS/IPS全球年收入可达到9.32亿美元,2003〜2007年复合年增长率可达到21%。Infonetics首席分析师JeffWilson认为根据IDS/IPS收入分析预测表明,到2007年基于主机的产品和基于网络的入侵检测与入侵防范产品会在大多数环境里很好的共存。调查进一步表示,争夺IDS/IPS市场霸主的战斗正在激烈进行,Cisco和ISS平分秋色,全球收入份额为22%;赛门铁克位居整个IDS/IPS市场第三,并且位居基于主机的IDS/IPS市场第一;McAfee在整个IDS/IPS市场排名第四,比第二季度增加几个百分点,McAfee还位居在线式IPS硬件市场首位;基于网络的传统IDS产品占支出的39%,基于主机的IDS/IPS占32%,基于在线网络的IDS/IPS占29%;北美占全部IDS产品收入的一半多,欧洲、中东和非洲地区约占五分之一,亚太地区排在第三,而加勒比海和拉美地区是相差较远的第四名。而在国内,通信世界网2007年11月20日消息表明,根据国际权威调查机构IDC的最新报告,2007年上半年,启明星辰公司的天阗入侵检测系统和天清入侵防御系统双双拔得头筹。IDC统计数据还进一步表明,2007年上半年,除传统的IDS硬件市场保持稳定增长外,新兴的IPS硬件市场也一路上扬,预期2007年IDS国内市场总额可达6亿元人民币,而IPS也将达2亿元人民币,再次证明了IDC之前提出的IDS>IPS两个市场相互独立的观点。此外福建海峡黑盾入侵检测系统、上海金诺KIDS3.3入侵检测系统以及海信眼镜蛇入侵检测系统等都具有比较好的口碑。国内IPS起步比较晚,2005年9月,绿盟科技推出了国内安全厂商的第一款具有自主知识产权的IPS产品——冰之眼网络入侵保护系统ICEYENIPS,一举打破了目前国内IPS市场由国外产品垄断的局面,在国内安全市场上掀起一个新的IPS研发和应用高潮。纵观全局,尽管在众多的IDS/IPS产品中不乏精品,但是就整体市场而言,各种产品表现良莠不齐。可以说目前中国IDS/IPS市场的真正格局还未真正形成。开源免费IDS产品Snort介绍Snort概述1998年,MartinRoesch开发了开放源代码的入侵检测系统Snort,直至今天已发展成为一个跨平台的软件包,具有实时流量分析、网络IP数据包记录、协议分析等功能,是最具代表性的免费的IDS产品,其主要特点有:(1)轻量级,Snort虽然功能强大,但是其代码却短小精悍,源代码的压缩包仅200K。⑵移植性好,Snort的跨平台性极佳,目前已经可以支持Linux、Windows、MacOSX、Solaris、BSD、IRIX、Tru64、HP-UX等操作系统⑶速度快,Snort可以运行在100Mbps的网络上,监测网络中的入侵行为。⑷易于配置,Snort安装配置容易,且规则语法非常简单,方便用户根据自身需要下载或自己编写。(5)灵活易扩展,Snort可以使用具有特定功能的报告,检测子系统插件对其功能进行扩展。Snort当前支持的插件包括:数据库日志输出插件,破碎数据包检测插件,断口扫描检测插件,HTTPURI插件,XML网页生成等。⑹免费,这也是Snort最诱人的一大特点。Snort主要由以下几大部分组成:数据包解码器,预处理器,检测引擎和报警输出模块。Snort从网卡取得数据包后先用预处理插件进行处理,然后经过检测引擎中的所有规则链,如果有符合规则链的数据包则会被检测出来,按照规则进行处理,如图2.1所示:
Snort运行模式Snort有三种主要的运行模式:数据包嗅探器模式、数据包记录器模式以及成熟的侵入探测系统模式:(1)数据包嗅探器模式该模式类似于tcpdump,是从网络上捕获数据包,然后将数据包的详细信息显示在控制台上。®$snort—v显示TCP/IP包头信息,打印在屏幕上$snort-vd显示TCP/IP包头以及应用层数据信息。$snort-dev显示TCP/IP包头、应用层数据以及链路层信息,如图2.2所示:图2.2snort数据包嗅探器模式(2)数据包记录器模式该模式可以将数据包信息以不同的格式记录到磁盘上,方便用户对数据进行事后分析。这这个模式下需要制定一个日志文件路径,snort就会自动记录数据包了。①$snort—dev—1./log-l参数后面跟的是log文件的路径,该目录必须存在,否则snort就会报告错误信息并退出。当snort在这种模式下运行,它会记录所有看到的包将其放到一个目录中,这个目录以数据包目的主机的IP地址命名,如图2.3所示:snort」og. snortsnort」og, snort」og・ snort」og,1213386669 1213386681 1213386695 1213386703 1213386707图2.3snort数据包记录器模式Snort数据包记录器运行模式可以将数据包信息以不同的格式保存在磁盘上,女口ASCII码、tcpdump格式、XML等。@$snort-dv-rpacket.log可以使用任何支持tcpdump二进制格式的嗅探器程序从snort所生成的文件中读出数据包,同时snort也可以在嗅探器模式下把一个tcpdump格式的二进制文件中的包打印到屏幕上。@$snort-dvrpacket.logicmp在数据包记录器和入侵检测模式下,可以通过BPF(BSDPacketFilter)接口,使用许多方式维护日志文件中的数据。例如,使用上述命令可以从日志文件中提取ICMP包。网络入侵检测系统模式Snort最重要的运行模式就是网络入侵检测模式。®$snort-dev-l./log-cetc/snort/snort.conf使用-c命令参数可以导入规则文件,snort就可以利用该规则文件对数据包进行检查,如果有规则匹配了,就会产生告警信息,默认告警信息会保存到/var/log/snort目录下,如图2.4所示:[**][1:1411:10]SNMPpublicaccessudp[**][Classificaticm:AttemptedInformationLeak][Prior2]04/234:53:43・706593192・168・1・69:1028->192・168・1・200:161UDPTTL:128TOS:OxOID:16643IpLen:20DgmLen:106Lmn:78[Xref=>http://eve・Eit「E・org/cgi-bin/cvename・cgi?门bee=200:2・0013][Xrmf=>http://eve・・org/cgi-bin/cvename・cgi?name=2002-0012][Xref=>http://eve・・org/cgi-bin/cvename・cgi?riBniE=].999・0517][只「总卡=>http://ww・securityfocus・conn/bid/4089] =>http://ww.securityfocus・coin/bid/4088][Xref=>http://ww.SRCLirityfciCLis・cciin/bicl/2112][**][1:1417:9]SNMPrequestudp[**][Classificaticm:AttemptedInformationLeak][Priority:2]04/23・14:53:43.706593192.168・1・69:1028->192・168・1・200:161UDPTTL:128TOS:OxQID:16643IpLen:20DgmLen:].O6Len:78[Xref=>http://eve・Eit「E・org/cgi-bin/cvename・cgi?门bee=200:2・0013][Xrmf=>http://eve・・org/cgi-bin/cvename・cgi?name=2002-0012][Xref=>http://ww・secu「ityfocus・com/bid/4132][Xref=>http://ww・secu「ityfocus・com/bid/4089]=>http://ww.securityfocus・com/bid/4088][**][119:15:1](http_inspect)OVERSIZEREQUEST・URIDIRECTORY[**][Priority:3]04/23・14:58:36.429245192・168・1・69:4719->203・209・2B0・252:80TCPTTL:128TOS:OxOID:17194IpLen:20DgmLen:J.5CODF***A****Seq:0x9C117CC0Ack:0x15165563Win:OxFFFFTcpLen:20[**][119:7:1](http_inspect)IISUNICODECODEPOINTENCODING[**]图2.4snort入侵检测系统模式Snort规则语法Snort规则语法非常简单,易于掌握。规则文件用户可以在网上down到也可以根据自身的需要自己来编写。这也增加了snort的灵活性。RuleNodeOptionNodeOptionNodeOptionNodeRuleRuleNodeNodeOptionRuleNodeOptionNodeOptionNodeOptionNodeRuleRuleNodeNodeOptionNodeOption
NodeOption
Node图2.5snort规则语法其中一条规则由规则头部和规则选项两部分组成,如图2.5所示。规则头部包括了:动作、协议、源目的IP地址、源/目的端口号等字段。规则选项包含了特征码和告警信息等字段。alertiemp$EXTERNAL_NETany->$H0ME_NETany(msg:||ICMPPINGNMAP||;dsize:0;itype:8;)上面这条规则是对ICMPPING攻击进行了判断,其中alert”表示的动作是当规则匹配的时候既会产生告警,又会记录到log中;icmp”是协议字段;这条规则定义的源地址是外网地址,目的地址为内网地址,且没有设定端口号;itype:8”表示ICMP数据包类型为8;dsize:0”表示数据负载为0当这些条件都匹配的时候就会产生一条告警ICMPPINGNMAP”。Snort+Acid-Base运行环境因为snort是一个免费开源的IDS软件,所以它并没有为用户提供一个友好的交互界面,这样用户靠肉眼来查看海量的告警信息是非常费劲的,因此作者在ubuntu7.10下配置了一个Snort+Acid-Base环境,将snort的告警信息保存在数据库中,然后通过为基于PHP的入侵检测数据库分析控制台(Acid-Base)显示出告警信息的统计情况,具体步骤如下:安装snort、MySQL、Apache2、Base$sudoapt-getinstalllibpcap0.8-devlibmysqlclient15-devmysql-client-5.0mysql-server-5.0bisonflexapache2libapache2-mod-php5php5-gdphp5-mysqllibphp-adodbphp-pearpcregrepsnortsnort-rules-default安装snort-mysql辅助工具$sudoapt-getinstallsnort-mysql建立snort数据库$mysql-uroot-pmysql>CREATEDATABASEsnort;mysql>grantCREATE,INSERT,SELECT,UPDATEonsnort.*tosnort@localhost;mysql>grantCREATE,INSERT,SELECT,UPDATEonsnort.*tosnort;mysql>SETPASSWORDFORsnort@localhost=PASSWORD('123123');mysql>exit(4)使用snort-mysql在数据库中建立表项$cd/usr/share/doc/snort-mysql$zcatcreate_mysql.gz|mysql-usnort-Dsnort-psnort-db(4)修改snort配置文件#varHOME_NETanyvarHOME_NET/16#varEXTERNAL_NETanyvarEXTERNAL_NET!$HOME_NET
(5)安装并配置base$sudoapt-getinstallacidbase$sudocpR/usr/share/acidbase//var/www/$rmbase_conf.php$touchbase_conf.php$sudochmod757acidbase/配置好环境后就可以运行snort,告警信息会导入到数据库对应的表项中,并在入侵检测数据库分析控制台上会显示出告警的统计信息,如图2.6,2.7所示:Sensors/Total:2/2UniqueAlerts:6Categories:3Sensors/Total:2/2UniqueAlerts:6Categories:3TotalNumberofAlerts:148TrafficProfilebyProtocolTCP(45%)UDP(0%)SrcIPaddrs:9Dest.IPaddrs:35UniqueIPlinks36SourcePorts:65ICMP(3%)PortscanTraffic(51%)oTCP(65)UDP(0)•DestPorts:2oTCP(2)UDP(0)图2.6acid-base告警事件统计信息aID <Signature><Timestamp><SourceAddress><Dest.Address><Layer4Proto>#0-(1-1)[snort](http_inspect)BAREBYTEUNICODEENCODING2008-05-3123:57:499:158300:80TCP厂#l-(l-2)[snort](httpjnspect)BAREBYTEUNICODEENCODING2008-06-0100:12:519:158900:80TCP厂#2-(1-3)[snort](httpjnspect)BAREB^EUNICODEENCODING2008-06-0100:27:50192・168・丄・69:].593222.216.28・100:80TCP厂#3-(1-4)[snort](httpjnspect)BAREBYTEUNICODEENCODING2008-06-0100:42:489:160000:80TCP厂#4-(1-5)[snort](httpjnspect)BAREBYTEUNICODEENCODING2008-06-0100:57:479:160500:80TCP厂#5-(l-6)[snort](http」nspect)BAREBYTEUNICODEENCODING2008-06-0101:12:479:161000:80TCP厂#6-(l-7)[snort](http」nspect)BAREBYTEUNICODEENCODING2008-06-0101:27:469:161700:80TCP厂#7-(l-8)[snort](httpjnspect)BAREBYTEUNICODEENCODING2008-06-0101:42:459:162400:80TCP厂#8-(l-9)[snort](httpjnspect)BAREB^EUNICODEENCODING2008-06-0101:57:45192・168・丄・69:].628222.216.28・100:80TCP厂#9-(1・丄0)[snort](http」nspect)BAREBYTEUNICODEENCODING2008-06-0102:12:449:163400:80TCP厂#10-(1・l:L)[snort](http」nspect)BAREBYTEUNICODEENCODING2008-06-0102:27:449:163900:80TCP厂#11-(1・12)[snort](http」nspect)BAREBYTEUNICODEENCODING2008-06-0102:42:439:164400:80TCP厂#12-(1・13)[snort](http」nspect)BAREBYTEUNICODEENCODING2008-06-0102:57:439:164800:80TCP图2.7acid-base告警事件统计信息b3.反IDS/IPS技术分析反IDS/IPS方法主要有两种,一种是首先攻击入侵检测系统使其失效,而另一种方法则是利用各种手段躲过IDS系统的检测。利用字符串匹配弱点技术针对基本字符串匹配弱点来躲过IDS检查的入侵方法是最早被提出和实现的。一些基于特征码的入侵检测设备几乎完全依赖于字符串匹配算法。虽然不是所有的入侵检测系统都是纯粹基于特征码检测的,但是绝大多数对字符串匹配算法有很大的依赖。比如拿2.2节中介绍的snort的特征码来进行讨论,在UNIX系统中,/etc/passwd是一个重要的文件,它包含用户名、组成员关系和为用户分配的shell等信息。下面是用于检测的snort检测规则:alerttcp$EXTERNAL_NETany->$HTTP_SERVERS80(msg:"WEB-MISC/etc/passwd";flags:A+;content:"/etc/passwd";nocase;classtype:attempted-recon; sid:1122;rev:l)snort使用字符串匹配算法对包含特征码(/etc/passwd)的HTTP请求进行检测。但是这个规则的特征码过于简单了,攻击者可以通过修改攻击字符串,便能轻松地逃过检测。例如,把攻击请求由GET/etc/passwd改为GET/etc//\//passwd,就可以轻松的绕过snort的检查了。这是最基本的逃避技术,对这种技术的检测也相对容易一些,只要在编写特征码时能够仔细考虑一下攻击可能出现的变体。目前大多数流行入侵检测系统都有非常强大的字符串匹配能力,足以检测此类攻击的大多数变体。不过,仍然有些编写不太好的特征码可以给攻击者以可乘之机。多变shell代码技术多变shell代码(polymorphicshellcode)技术由K2开发的,设计思想来源于病毒逃避技术。使用这种技术重新构造的shell代码非常危险,入侵检测设备非常难以检测到。这种技术只用于缓冲区溢出攻击,对付基于特征码的检测系统非常有效。例如有如下snort规则:alerttcp$EXTERNAL_NETany->$HOME_NET22(msg:"EXPLOITsshCRC32overflow/bin/sh";flags:A+;content:"/bin/sh";reference:bugtraq,2347;reference:cve,CVE-2001-0144;classtype:shellcode-detect; sid:1324;rev:1;)alerttcp$EXTERNAL_NETany->$HOME_NET22(msg:"EXPLOITsshCRC32overflowNOOP";flags:A+;content:"909090909090909090909090909090)上面的第一条规则简单地检查从外部到$HOME_NET,目标端口是22的数据包,搜索其中是否包含字符串/bin/sh。第二条规则是检查其中是否包含x86空操作字符(0x90)。而多变shell代码使用很多方法逃避字符串匹配系统的检测。首先可以使用其它的字符代替0x90执行无操作指令。对于X86架构,有55种替代方式。这些替代方式以一种伪随机的方式结合到一块,建立缓冲区溢出shell代码包含无操作指令的部分。除此之外,shell代码本身也采用XOR机制编码。通过这种方式建立的缓冲区溢出shell代码被重组后不会包含以上的特征码,从而能够逃过字符串匹配检测。会话拼接技术上面讨论的方法都是属于攻击数据在一个数据包中,没有涉及攻击数据和会话通过多个数据包投递的情况。会话拼接技术就是把会话数据放到多个数据包中发出。通过这种方式,每次只发送几个字节的数据,就可能避开字符串匹配入侵检测系统的监视。要监视这种攻击,需要入侵检测系统或者能够理解、监视网络会话。Snort中使用以下规则来监视会话拼接:alerttcp$EXTERNAL_NETany->$HTTP_SERVERS80(msg:"WEB-MISCwhiskerspacespliceattack";content:"20";flags:A+;dsize:l;reference:arachnids,296;classtype:attempted-recon;reference)这条规则使snort检测目标为$HTTP_SERVERS80端口的ACK报文的负载长度是否等于l以及是否包含空格。使用这条规则可以精确地检测出拼接攻击。但是攻击者只要稍加修改就可以避开这个检测。为了能够检测可能出现的会话拼接攻击,可以对上面这条snort规则进行扩展,使其检查负载很短的HTTP请求。但是,这样做的副作用是提高了误报警数量,而且在某些情况下攻击者还是能够避开监视。为了真正有效地检测这种攻击,需要入侵检测系统能够完整地理解网络会话,不过这是非常困难的。拒绝服务攻击技术这是一种比较野蛮的攻击方法。拒绝服务可以针对检测设备本身和管理设备。利用Stick或其它一些测试工具能够使入侵检测设备产生大量的报警。使用这些工具,可以消耗检测设备的处理能力,从而真正的攻击逃过检测;塞满硬盘空间,使检测设备无法记录日志;使检测设备产生超出其处理能力的报警;使系统管理人员无法研究所有的报警。对IDS来说这类工具非常难以对付。木马技术IDS检测木马和后门程序一般是通过端口来判断的,即通过后门程序的默认端口的连接来判断,女如Netspy默认端口是7306,BO2k默认端口是54320,所以只要后门程序不使用默认值就可以逃过一些IDS的法眼。目前大部分后门程序的通信都已采用加密的方式,所以目前大部分IDS只能通过非正常端口建立连接来判断,如果后门程序采用正常的端口进行通信,IDS就很有可能漏报。4.IDS/IPS存在的问题及发展趋势IDS/IPS存在的问题IDS/IPS不但可以发现外部攻击也可以发现内部的攻击,成为了防火墙的必要补充。但是由于这项技术诞生的时间还不是很长,并且防范和攻击之间总是存在着一种此消彼长的博弈关系,所以入侵检测/防范产品中还是存在有不少问题。漏报和误报这一问题可以说几乎对于所有的安全软件都是存在的。造成漏报的原因有很多。首先入侵检测产品的一个重要的指标就是包截获能力,当网络数据流量超过入侵检测产品本身的包获取能力时,就会有部分数据包无法被分析,这样就有可能导致漏报。然后随着攻击技术的不断发展,如果IDS/IPS产品不能及时更新攻击规则库的话也会对新的攻击类型没有任何抵抗能力。此外还有一些如特殊隧道、后门以及碎片等反IDS/IPS技术也会造成产品的漏报,利用这些技术可以使恶意的数据流巧妙的躲过IDS/IPS的检查。误报也是一个值得关注的问题,以为它的存在可能会分散管理员的注意力,从而忽略了一些重要的攻击信息。造成误报的主要原因有,当大量发送包含有攻击特征数据到指定的网络环境时,就可能造成整个IDS/IPS系统被这些报警信息所淹没从而崩溃。此外因为目前流行的IDS/IPS技术还是基于数据特征匹配的,那么对于一些偶然含有攻击特征的无害数据包,IDS/IPS往往也会不加判断的进行报警。隐私和安全之间的矛盾IDS/IPS可以接收到网络中所有的数据,并对此进行分析和记录,这一过程对于安全来说是非常重要的,但对于用户来说可能也会涉及到隐私被侵犯的问题。如何来权衡隐私和安全也是IDS/IPS所要面对的一大问题。告警信息处理首先因为安全设备的规范标准并不是很多,这样各个设备制造商都会定义自己告警信息格式,而格式上的不同就对告警的统一分析处理造成了一定的障碍。其次,入侵检测,防火墙等安全设备都会产生大量安全事件数据,单凭管理员手工对这些数据进行分析是完全难以想象的。再次,由于技术上的原因很多现有的网络安全工具在对网络真实攻击,漏洞以及安全事件进行报警的同时还会产生大量的虚警。根据统计,在一个缺省配置的NIDS所产生的告警数据中,虚警的数量最高可能占到报警数据的99%[10]。这样大量的虚警会淹没真实的告警,从而管理员就难以判断告警的真实性。此外,现有的大部分IDS/IPS检测到的攻击都为入侵过程中单一攻击行为,没有将前后攻击步骤关联起来进行分析[11]。这样对网络安全事件所产生的告警进行统计分析成为了目前网络安全领域所面临的一大焦点问题。通过对来自不同类型的IDS或其它安全设备所产生的告警进行规格化,聚合和关联处理可以在很大程度上减少管理员的负担,并且可以有效的提高了告警质量[12]。这在安全领域中是十分有意义且富有挑战性的一项工作。IDS/IPS发展趋势2003年Gartner公司说入侵检测系统不值得购买。此外还预测,到2005年入侵检测系统会变得过时。Gartner表示,入侵检测系统没有像厂商承诺的那样增加一个附加的安全层,许多情况证明入侵检测系统是既昂贵又无效的投资。作为替代产品,企业应该把钱花在提供网络级和应用级防火墙功能的软件上。还认为,入侵检测系统是一次市场失败,厂商现在大力宣传的入侵防御系统也停滞不前。入侵检测系统的功能正向防火墙转移,防火墙将能对内容和恶意流量阻塞执行深入的包检查,还能进行反病毒活动。但个人认为入侵检测/防范技术并没有过时,因为要维护一个系统/网络的安全性需要首先按照系统的安全要求对系统进行安全配置,然后监视网络活动,发现入侵行为,此外还需要进行事后分析审计,然后重新返回到第一步重新进行安全配置,这是一个循环往复的过程。那么在这个过程中需要一个起到监视作用的预警系统,用来监视网络中的通信并进行实时的相应、告警。所以ID
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年卫生专业技术资格考试试题及答案
- 2026年初中历史专项训练冲刺押题
- 腰鼓竞赛试题及答案展示
- 职工思想调研报告2026(3篇)
- 六年级下册数学北师大含答案 解决问题的策略
- 初二学业水平试题及答案
- 2026年打印行业知识产权保护
- 气象预警考试试题及答案解析
- 计算机软硬件故障排查规范
- 江苏省宿迁市沭阳县怀文中学2025-2026学年八年级上学期10月月考物理试卷(有答案)
- 水产苗种生产技术操作规程
- 高等数学各专业复习资料大全
- 2025年山东省烟台市辅警招聘公安基础知识考试题库及答案
- 拉力试验机安全操作规程及维护手册
- (正式版)DB23∕T 221-2002 《规模化养蜂技术规程》
- 选煤厂安全规程培训课件
- BSL-1生物安全实验室备案审核表
- 基于STM32的室内花卉自动浇灌系统设计
- 韩语入门考试题库及答案
- 辽宁护士注册管理办法
- 学校保安保洁及宿管服务投标方案(技术方案)
评论
0/150
提交评论