第7章入侵检测与防御技术7.1入侵检测系统概述7.1.1网络攻击的层次任何以干扰、破坏网络系统为目的的非授权行为都称为网络攻击或入侵,它可以是针对安全策略的违规行为、针对授权特征的滥用行为,还可以是针对正常行为特征的异常行为。这些攻击可分为六个层次。1.第一层第一层次的攻击一般是基于应用层的操作,第一层的各种攻击一般应是互不相干的。典型的第一层攻击包括拒绝服务攻击和邮件炸弹攻击,这些攻击的目的只是为了干扰目标的正常工作,化解这些攻击一般是十分容易的。拒绝服务发生的可能性很大,对付这种攻击最好的方法是把攻击者使用的主机/网络信息加入拒绝列表中,使攻击者网络中所有主机都不能对你的网络进行访问。第一层的另一种攻击技术是与邮件或新闻服务器建立Telnet会话,然后设法了解哪些目录是共享的、哪些目录没被共享,如果在网络上采取了适当的安全措施,这些行为是不会带来危险的,如果共享目录未被正确地配置或系统正在运行远程服务,那么这类攻击就能方便得手。网络上一旦发现服务拒绝攻击的迹象,就应在整个系统中查找攻击来源,拒绝服务攻击通常是欺骗攻击的先兆或一部分,如果发现在某主机的一个服务端口上出现了拥塞现象,那就应对此端口特别注意,找出绑定在此端口上的服务;如果服务是内部系统的组成部分,那就应该特别加以重视。许多貌似拒绝服务的攻击可能会引起网络安全措施彻底失效,真正的持续很长时间的拒绝服务攻击对网络仅仅起干扰的作用。2.第二层和第三层第二层是指本地用户获得不应获得的文件(或目录)读权限,第三层则上升为获得写权限。这一攻击的严重程度根据被窃取读或写权限的文件的重要性决定。如果某本地用户获得了访问tmp目录的权限,那么问题就是很糟糕的,可能使本地用户获得写权限从而将第二层攻击推进至第三层攻击,甚至可能继续下去。本地攻击和其他攻击存在一些区别,“本地用户”(LocalUser)是一种相对的概念。“本地用户”是指能自由登录到网络的任何一台主机上的用户。本地用户引起的威胁与网络类型有直接的关系,如对一个ISP而言,本地用户可以是任何人。本地用户发起的攻击既可能是不成熟的,也可能是非常致命的,但无论攻击技术水平高是低,都必须利用Telnet。访问控制环境中,存在着两个与权限密切相关的问题,都决定着第二层攻击能否发展成为三层、四层或五层攻击。这两个问题就是误配置和软件漏洞。如果对权限理解不透彻,第一个问题可能出现。第二个问题比较常见,任何时候都会出现。3.第四层第四层攻击主要是指外部用户获得访问内部文件的权利。所获得的访问权限可以各不相同,有的只能用于验证一些文件是否存在,有的则能读文件。如果远程用户(没有有效账户的用户)利用一些安全漏洞在你的服务器上执行数量有限的几条命令,则也属于第四层攻击。第四层攻击所利用的漏洞一般是由服务器配置不当、CGI程序的漏洞和溢出问题引起的。4.第五层和第六层第五层攻击是指获得特权文件的写权限,第六层攻击则是指获得系统管理员的权限或根权限。这两类攻击都利用了本不该出现却出现的漏洞,在此级别上,远程用户有读、写和执行文件的权限,这类攻击都是致命的。一般来讲,如果阻止了第二层、第三层及第四层攻击,那么除非是利用软件本身的漏洞,五层、六层攻击几乎不可能出现。7.1.2各攻击层次的防范策略1.对第一层攻击的防范防范第一层攻击的方法:首先对源地址进行分析,发现攻击迹象后,与攻击者的服务进行联系。这种防范手段当拒绝服务攻击看上去和其他更高层次的攻击相似时,即攻击持续时间较长时,这时应该不仅仅是拒绝接受数据。2.对第二层攻击的防范对第二层攻击的处理应局限在内部,不要泄露有关本地用户已访问到他们不应访问的东西这一信息,采取的基本措施是不做任何警告就冻结或取消本地用户的账号,通过这种方法可以保留那些来不及被删除的证据。万一无法完全获得攻击证据,可以先做出警告并暂时保留其账号,然后尽可能全面地记录整个事件的过程,当攻击又发生时再做出处理。3.对第三、第四和第五层攻击的防范如果遭受的攻击是第三、第四、第五层攻击,那么所受的威胁就十分得大,必须采取下列一些措施:1)将遭受攻击的网段隔离出来,把攻击限制在较小的范围内。2)让攻击行为继续进行。3)对攻击行为进行大量的日志工作。4)在另一个网段上,竭尽全力地判断攻击源。此时还需要和攻击者周旋,因为这种类型的访问是非法的,如果想抓住他,那么需要收集证据,但证据的收集是需要时间的。在Internet犯罪案件中,证据并没有统一的标准。能使罪犯绳之以法的确凿证据是那些能证明攻击者曾侵入过网络,如攻击者用拒绝服务攻击使服务器死机的证据。在寻找攻击者并定位攻击者的过程中,一般需要相当的技术和一定的时间,在此过程中,必须承受一定的攻击压力,即使采取了一些能确保此攻击不至于破坏你的网络的防卫措施。采用入侵检测系统,是预警、监控、处置网络攻击的有效方法。7.1.3入侵检测概述网络安全技术中,防火墙是所有保护网络的方法中最能普遍接受的方法,能阻挡外部入侵者,但对内部攻击无能为力;同时,防火墙绝对不是坚不可摧的,即使是某些防火墙本身也会引起一些安全问题。防火墙不能防止通向站点的后门,不提供对内部的保护,无法防范数据驱动型的攻击,不能防止用户由Internet上下载被病毒感染的计算机程序或将该类程序附在电子邮件上传输。数据加密技术是为提高信息系统及数据安全性、保密性和防止秘密数据被破解所采用的主要手段之一。按作用不同,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术四种。密码的保密性主要取决于密钥的规模和密码算法的数学结构的严密性。然而,数据加密的措施都有一定的限度,并不是理论上越安全的措施就越可靠,这需要对整个网络的安全防护进行综合评价。通过密码保证网络安全也许会让人产生一种心理上的安全感,但是,在现今的计算条件下,没有无法破译的密码。这些网络安全技术,实现的是“分而治之”解决方法,是网络安全防护系统构成的一个环节。从实现的防护功能讲,这些技术实现的是一种静态的被动防护,其安全防护的层次处在网络的边界,能阻止大部分的外部攻击,但是对内部攻击却无能为力。信息安全的PDR2模型充分说明了检测的重要性。入侵检测是防火墙的合理补充,它帮助系统对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。入侵检测(IntrusionDetection)技术是一种动态的网络检测技术,主要用于识别对计算机和网络资源的恶意使用行为,包括来自外部用户的入侵行为和内部用户的未经授权活动。一旦发现网络入侵现象,则应当做出适当的反应。对于正在进行的网络攻击,则采取适当的方法来阻断攻击(与防火墙联动),以减少系统损失。对于已经发生的网络攻击,则应通过分析日志记录找到发生攻击的原因和入侵者的踪迹,作为增强网络系统安全性和追究入侵者法律责任的依据。它从计算机网络系统中的若干关键点收集信息,并分析这些信息,看看网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵检测系统(IDS)由入侵检测的软件与硬件组合而成,被认为是防火墙之后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测,提供对内部攻击、外部攻击和误操作的实时保护。这些都通过它执行以下任务来实现:1)监视、分析用户及系统活动。2)系统构造和弱点的审计。3)识别反映已知进攻的活动模式并向相关人士报警。4)异常行为模式的统计分析。5)评估重要系统和数据文件的完整性。6)操作系统的审计跟踪管理,并识别用户违反安全策略的行为。对一个成功的入侵检测系统来讲,它不但可以使系统管理员时刻了解网络系统(包括程序、文件和硬件设备等)的任何变更,还能给网络安全策略的制订提供指南。更为重要的一点是,它应该管理、配置简单,从而使非专业人员非常容易地获得网络安全。入侵检测的规模还应根据网络威胁、系统构造和安全需求的改变而改变。入侵检测系统在发现攻击后,会及时做出响应,包括切断网络连接、记录事件和报警等。7.1.4入侵检测的发展历程从实验室原型研究到推出商业化产品、走向市场并获得广泛认同,入侵检测系统已经走过了20多年的历程。1.概念的诞生1980年4月,JamesP.Aderson为美国空军做了一份题为《ComputerSecurityThreatMonitoringandSurveillance》(计算机安全威胁监控与监视)的技术报告,第一次详细阐述了入侵检测的概念。他提出了一种对计算机系统风险和威胁的分类方法,并将威胁分为外部渗透、内部渗透和不法行为三种,还提出了利用审计跟踪数据监视入侵活动的思想。这份报告被公认为是入侵检测的开山之作。2.模型的发展1984~1986年,乔治敦大学的DorothyDenning和SRI/CSL(SRI公司计算机科学实验室)的PeterNeumann研究出了一种实时入侵检测系统模型,取名为IDES(入侵检测专家系统)。该模型由六个部分组成:主体、对象、审计记录、轮廓特征、异常记录、活动规则。它独立于特定的系统平台、应用环境、系统弱点以及入侵类型,为构建入侵检测系统提供了一个通用的框架。1988年,SRI/CSL的TeresaLunt等改进了Denning的入侵检测模型,并实际开发出了一个IDES。该系统包括一个异常检测器和一个专家系统,分别用于统计异常模型的建立和基于规则的特征分析检测。1990年是入侵检测系统发展史上十分重要的一年。这一年,加州大学戴维斯分校的L.T.Heberlein等开发出了NSM(NetworkSecurityMonitor)。该系统第一次直接将网络流作为审计数据来源,因而可以在不将审计数据转换成统一格式的情况下监控异种主机。从此之后,为入侵检测系统的发展翻开了新的一页,两大阵营正式形成:基于网络的IDS和基于主机的IDS。1988年的莫里斯蠕虫事件发生后,网络安全才真正引起了军方、学术界和企业的高度重视。美国空军、国家安全局和能源部共同资助空军密码支持中心、劳伦斯利弗摩尔国家实验室、加州大学戴维斯分校、Haystack实验室,开展对分布式入侵检测系统(DIDS)的研究,将基于主机和基于网络的检测方法集成到一起。DIDS是分布式入侵检测系统历史上的一个里程碑式的产品,它的检测模型采用了分层结构,分数据、事件、主体、上下文、威胁、安全状态等6层。从20世纪90年代到现在,入侵检测系统的研发呈现出百家争鸣的繁荣局面,并在智能化和分布式两个方向取得了长足的进展。目前,SRI/CSL、普渡大学、加州大学戴维斯分校、洛斯阿拉莫斯国家实验室、哥伦比亚大学、新墨西哥大学等机构在这些方面的研究代表了当前的最高水平。第7章入侵检测与防御技术7.2入侵检测的原理与技术7.2.1入侵检测的实现方式1.网络IDS网络IDS是网络上的一个监听设备(或一个专用主机),通过监听网络上的所有报文,根据协议进行分析,并报告网络中的非法使用者信息。根据判断方法的不同,基本分为两大类:基于知识的数据模式判断方法和基于行为的行为判断方法。前者大量用于商业IDS系统;后者多在研究系统中采用。根据数据模式判断的IDS,首先分析已经总结出的网络非法的工作方法,即数据模型,把网络中读取的数据进行比较,匹配成功的,就报告此事件,如图7-1所示。图7-1网络IDS工作模型其中,协议分析把网络数据按照协议定义进行分解,如按照IP地址分解出源IP地址、目的IP地址等,按照TCP协议分解出源端口、目的端口等,按照HTTP协议分解出URL、HTTP命令等数据,而匹配数据模型则是非法使用者采用的非正常的各个协议数据,如源IP地址等于目的IP地址、源端口等于目的端口、HTTP的URL包含“..”和“..%c0%af..”等字符串的请求等,当匹配成功时,则说明已经发生了网络非法事件,上报并处理这些事件。根据行为准则判断的IDS,又细分为两种:统计行为判断和异常行为判断。统计行为判断是根据上面模式匹配的事件,在进行统计分析,根据已知非法行为的规则,判断出非法行为。如一次Ping事件很正常,但如果单位事件内出现大量Ping事件,则说明是一个P