1、第5讲 入侵检测技术,内容提要: 入侵检测概述 入侵检测的技术实现 分布式入侵检测 入侵检测系统的标准 入侵检测系统示例 本章小结,5.1 入侵检测概述,定义入侵检测系统利用优化匹配模式和统计学技术把传统的电子数 据处理(EDP)和安全审计技术结合起来,实现动态网络安全防护, 是构成完整的现代网络安全系统的必要部分。入侵检测系统是防火墙的合理补充,通过主动防御来帮助系统 对付网络攻击,扩展了系统管理员的安全管理能力(包括安全审 计、监视、进攻识别和响应),提高了信息安全基础结构的完整 性。它从计算机网络系统中的若干关键点收集并分析信息,查看 网络中是否有违反安全策略的行为和遭到袭击的迹象。入侵
2、检测 系统在不影响网络性能的情况下能对网络进行监测,提供对内部 攻击、外部攻击和误操作的实时保护 。,返回本章首页,发展 一个阶段是安全审计审计定义为对系统中发生事件的记录和分析处理过程。与系统日 志相比,审计更关注安全问题。根据美国国防部(DOD)“可信计算机系 统评估标准”(TCSEC)橘皮书规定,审计机制(auditmechanism)应作为 C2或C2以上安全级别的计算机系统必须具备的安全机制。其功能:记录系统被访问的过程以及系统保护机制的运行; 发现试图绕过保护机制的行为; 及时发现用户身份的变化; 报告并阻碍绕过保护机制的行为并记录相关过程,为灾难恢复提供信息。1980年4月,Ja
3、mes P.Aderson为美国空军做了一份题为Computer Security Threat Monitoring and Surveillance(计算机安全威胁监控与监视)的技术报告,第一次详细阐述了入侵检测的概念。他提出了一种对计算机系统风险和威胁的分类方法,并将威胁分为外部渗透、内部渗透和不法行为三种,还提出了利用审计跟踪数据监视入侵活动的思想。这份报告被公认为是入侵检测的开山之作。 Anderson还建议对用户行为进行统计分析,可以确定系统使用的不寻常模 式,可能会找出隐藏着的黑客。这个已被验证了的建议是另一个入侵检测的 里程碑,即IDES(入侵检测专家系统)方案。,5.1 入侵
4、检测概述,发展 第二个阶段是入侵检测系统的诞生1980年,Anderson在 “计算机安全威胁的监察” 报告中提出,必须 改变现有的系统审计机制,为专职系统安全人员提供安全信息,被认 为是有关IDS的最早论述。其中,他首先提出了入侵检测的概念,将 入侵尝试(Intrusion attempt)或威胁(Threat)定义为:潜在的、有预谋 的且未经授权而访问信息、操作信息、致使系统不可靠或无法使用的 企图。Aderson提出审计追踪可应用于监视入侵威胁,但这一设想的 重要性当时并未被理解。1987年,Dorothy E Denning提出入侵检测系统的抽象模型,首次 将入侵检测的概念作为一种计算
5、机系统安全防御问题的措施提出。与 传统加密和访问控制的常用方法相比,入侵检测技术属于全新的计算 机网络安全措施。,5.1 入侵检测概述,返回本章首页,(1)主体(subjects);在目标系统上活动的实体,如用户。(2)对象(objects):指系统资源,如文件、设备、命令等。(3)审计记录(Audit records):内主体、活动(Action)、异常条件(ExceptionCondition)、资源使用状况(ResourceUsage)和时间戳(Time Stamp)等组成。其中活动是指主体对目标的操作。异常条件是指系统对主体该活动的异常情况的报告。资源使用状况是指系统的资源消耗情况。(
6、4)活动档案(Active Profile):即系统正常行为模型,保存系统正常活动的有关信息。在各种检测方法中其实现各不相同。在统计方法巾可以从事件数量、频度、资源消耗等方面度量。(5)异常记录(Anomaly Record):由事件、时间戳和审计记录组成,表示异常事件的发生情况。(6)活动规则(Active Rule):判断是否为入侵的推则及相应要采取的行动。 一般采用系统正常活动模型为准则,根据专家系统或统计方法对审计记录进行分析处理,在发现入侵时采取相应的对策。,5.1 入侵检测概述,返回本章首页,1988年,SRICSL的Teresa Lunt等改进了Denning的入侵检测模型,并实
7、际开发出了一个IDES。,1988年Teresa Lunt等人进一步改进了Denning提出的入侵检测模型,并实际开发了IDES(Intrusion Detection Expert System),该系统用于检测单一主机的入侵尝试,提出了与系统平台无关的实时检测思想。该系统包括一个异常检测器和一个专家系统,分别用于统计异常模型的建立和基于规则的特征分析检测。 1995年开发的NIDES(Next-Generation Intrusion Detection Expert System)作为IDES完善后的版本可以检测出多个主机上的入侵。,返回本章首页,1990年是入侵检测系统发展史上十分重要
8、的一年。这一年,加州大学戴维斯分校的L.T.Heberlein 等提出了一个具有里程碑意义的新型概念:基于网络的入侵检测网络安全监视器NSM(Network Security Monitor)。该系统第一次直接将网络流作为审计数据来源,因而可以在不将审计数据转换成统一格式的情况下监控异种主机。从此之后,为入侵检测系统的发展翻开了新的一页,两大阵营正式形成:基于网络的IDS和基于主机的IDS。,返回本章首页,1988年的莫里斯蠕虫事件发生后,网络安全才真正引起了军方、学术界和企业的高度重视。美国空军、国家安全局和能源部共同资助空军密码支持中心、劳伦斯利弗摩尔国家实验室、加州大学戴维斯分校、Hay
9、stack实验室,开展对分布式入侵检测系统 DIDS(Distribute Intrusion Detection System)的研究,将基于主机和基于网络的检测方法集成到一起。DIDS是分布式入侵检测系统历史上的一个里程碑式的产品,它的检测模型采用了分层结构,分数据、事件、主体、上下文、威胁、安全状态等6层。,从20世纪90年代到现在,入侵检测系统的研发呈现出百家争鸣的繁荣局面,并在智能化和分布式两个方向取得了长足的进展。目前,SRICSL、普渡大学、加州大学戴维斯分校、洛斯阿拉莫斯国家实验室、哥伦比亚大学、新墨西哥大学等机构在这些方面的研究代表了当前的最高水平。,1994年,Mark C
10、rosbie和Gene Spafford建议使用自治代理(autonomous agents)以提高IDS的可伸缩性、可维护性、效率和容错性,该理念非常符合计算机科学其他领域(如软件代理,software agent)正在进行的相关研究。 另一个致力于解决当代绝大多数入侵检测系统伸缩性不足的方法于1996年提出,这就是GrIDS(Graph-based Intrusion Detection System)的设计和实现,该系统可以方便地检测大规模自动或协同方式的网络攻击。,返回本章首页,近年来,入侵检测技术研究的主要创新有:Forrest等将免疫学原理运用于分布式入侵检测领域;1998年Ros
11、s Anderson和Abida Khattak将信息检索技术引进入侵检测;以及采用状态转换分析、数据挖掘和遗传算法等进行误用和异常检测。,返回本章首页,5.1.1 入侵检测原理,图5-2给出了入侵检测的基本原理图。入侵检测是用于检测任何损害或企图损害系统的保密性、完整性或可用性的一种网络安全技术。它通过监视受保护系统的状态和活动,采用误用检测(Misuse Detection)或异常检测(Anomaly Detection)的方式,发现非授权的或恶意的系统及网络行为,为防范入侵行为提供有效的手段。,返回本章首页,图5-2 入侵检测原理框图,返回本章首页,监控分析系统和用户的活动,发现异常企图
12、或异常现象,记录报警和响应,所谓入侵检测系统就是执行入侵检测任务的硬件或软件产品。入侵检测提供了用于发现入侵攻击与合法用户滥用特权的一种方法。其应用前提是入侵行为和合法行为是可区分的,也即可以通过提取行为的模式特征来判断该行为的性质。一般地,入侵检测系统需要解决两个问题: 如何充分并可靠地提取描述行为特征的数据; 如何根据特征数据,高效并准确地判定行为的性质。,返回本章首页,5.1.2 系统结构,由于网络环境和系统安全策略的差异,入侵检测系统在具体实现上也有所不同。从系统构成上看,入侵检测系统应包括事件提取、入侵分析、入侵响应和远程管理四大部分,另外还可能结合安全知识库、数据存储等功能模块,提
13、供更为完善的安全检测及数据分析功能(如图5-3所示)。,返回本章首页,图5-3 入侵检测系统结构,返回本章首页,入侵检测的思想源于传统的系统审计,但拓宽了传统审计的概念,它以近乎不间断的方式进行安全检测,从而可形成一个连续的检测过程。这通常是通过执行下列任务来实现的: 监视、分析用户及系统活动; 系统构造和弱点的审计; 识别分析知名攻击的行为特征并告警; 异常行为特征的统计分析; 评估重要系统和数据文件的完整性; 操作系统的审计跟踪管理,并识别用户违反安全策略的行为。,返回本章首页,图5-4 入侵检测系统的功能结构,代理服务器负责从各个目标系统中采集审计数据,并把审计数据转换为与平台无关的格式
14、后传送到中心检测平台,同时把中心平台的审计数据要求传送到各个目标系统 中心检测平台的功能是根据代理服务器采集来的审计数据由专家系统进行分析,产生系统报告。 管理员可向各个主机提供安全管理功能,根据专家系统分析结果向各个代理服务器发出审计数据的需求。 中心检测平台和代理服务器之间通过安全的远程过程调用(RPC)进行通信。,5.1.3 系统分类,由于功能和体系结构的复杂性,入侵检测按照不同的标准有多种分类方法。可分别从数据源、检测理论、检测时效三个方面来描述入侵检测系统的类型。,返回本章首页,1基于数据源的分类 基于主机:安装在主机上,监视和分析主机的审计记录,从而对可疑的主体活动采取相应的措施。
15、缺点是系统自身安全和入侵检测系统的性能之间无法统一(系统特权或逃过审计);再则依赖系统的日志和监视能力,使得能否及时采集获得审计数据成为问题。,返回本章首页,1基于数据源的分类 基于网络:放在共享网段的重要位置,依据规则对监听到的每个数据包进行特征分析,并做出响应。优点是具有平台无关性,影响很小,系统不可见性使其不易受攻击;缺点是性能受限于交换网络环境,特征检测法很难检测存在大量复杂计算和分析的攻击方法,受网段协调能力制约,网络流量回传和攻击告警延迟较大。,返回本章首页,1基于数据源的分类 混合入侵检测:综合基于网络和基于主机两种结构优势的入侵检测系统。其特点是形成一套完整的、立体式的主动防御
16、体系,既可发现网络中的攻击信息,也可从系统日志中发现异常。 基于网关:由新一代的高速网络结合路由与高速交换技术构成的,它从网关中提取信息来提供对整个信息基础设施的保护措施。 文件完整性检查系统:检查计算机中自上次检查后文件系统的变化情况,从而发现其中异常现象。缺点是此系统依赖本地的文摘数据库,与日志文件一样,存在被入侵者修改的可能。,返回本章首页,2基于检测理论的分类 从具体的检测理论上来说,入侵检测又可分为异常检测和误用检测。 误用检测技术通过将用户行为与已知的入侵行为特征进行比较来发现入侵。 异常检测技术通过将用户行为与已知的正常行为特征进行比较来发现入侵。,返回本章首页,2基于检测理论的
17、分类 异常检测(Anomaly Detection)指根据使用者的行为或资源使用状况的正常程度来判断是否入侵,而不依赖于具体行为是否出现来检测。 与系统相对无关,通用性较强,它甚至有可能检测出以前未出现的攻击方法。 缺陷是误检率高,面临受恶意训练攻击的可能。,返回本章首页,2基于检测理论的分类 误用检测(Misuse Detection)指运用已知攻击方法,根据已定义好的入侵模式,通过判断这些入侵模式是否出现来检测。 亦被称为特征分析或基于知识的检测。检测准度高,缺陷是受已知知识的局限,另外对目标系统依赖性太强,不但移植性不好,维护工作量大,而且将具体入侵手段抽象成只是也很困难,而对于内部人员
18、的入侵行为无能为力。,返回本章首页,3基于检测时效的分类 IDS在处理数据的时候可以采用实时在线检测方式,也可以采用批处理方式,定时对处理原始数据进行离线检测。离线检测方式将一段时间内的数据存储起来,然后定时发给数据处理单元进行分析,如果在这段时间内有攻击发生就报警。(根据日志和各种漏洞)在线检测方式的实时处理是大多数IDS所采用的办法,由于计算机硬件速度的提高,使得对攻击的实时检测和响应成为可能。(包括网络入侵检测、主机入侵检测,而主机入侵检测又包括基于审计信息的入侵检测、抵达主机数据的检测、外来连接检测、注册行为检测、操作检测、文件完整性检测、基于内核的检测等),返回本章首页,返回本章首页
19、,5.2 入侵检测的技术实现,对于入侵检测的研究,从早期的审计跟踪数据分析,到实时入侵检测系统,到目前应用于大型网络的分布式检测系统,基本上已发展成为具有一定规模和相应理论的研究领域。入侵检测的核心问题在于如何对安全审计数据进行分析,以检测其中是否包含入侵或异常行为的迹象。这里,我们先从误用检测和异常检测两个方面介绍当前关于入侵检测技术的主流技术实现,然后对其它类型的检测技术作简要介绍。,返回本章首页,5.2.1 入侵检测分析模型,分析是入侵检测的核心功能,它既能简单到像一个已熟悉日志情况的管理员去建立决策表,也能复杂得像一个集成了几百万个处理的非参数系统。入侵检测的分析处理过程可分为三个阶段
20、:构建分析器,对实际现场数据进行分析,反馈和提炼过程。其中,前两个阶段都包含三个功能:数据处理、数据分类(数据可分为入侵指示、非入侵指示或不确定)和后处理。,5.2.2 误用检测(Misuse Detection),误用检测是按照预定模式搜寻事件数据的,最适用于对已知模式的可靠检测。执行误用检测,主要依赖于可靠的用户活动记录和分析事件的方法。1条件概率预测法条件概率预测法是基于统计理论来量化全部外部网络事件序列中存在入侵事件的可能程度。,返回本章首页,2产生式/专家系统用专家系统对入侵进行检测,主要是检测基于特征的入侵行为。所谓规则,即是知识,专家系统的建立依赖于知识库的完备性,而知识库的完备
21、性又取决于审计记录的完备性与实时性。产生式/专家系统是误用检测早期的方案之一,在MIDAS、IDES、NIDES、DIDS和CMDS中都使用了这种方法。,返回本章首页,专家系统是误用检测中运用最多的一种方法。将有关入侵的知识转 化成if-then结构的规则,即将构成入侵所要求的条件转化为if部分,将 发现入侵后采取的相应措施转化成then部分。当其中某个或某部分条 件满足时,系统就判断为入侵行为发生。其中if-then结构构成了描述 具体攻击的规则库,状态行为及其语义环境可根据审计事件得到,推 理机根据规则和行为完成判断工作。在具体实现中,该方法的主要难点在于: 全面性问题,难以科学 地从各种
22、入侵手段中抽象出全面的规则化知识;效率问题,需处理 的数据量过大;在大型系统中,难以获得实时连续的审计数据。因为上述缺陷,商业产品一般不用,而较多的使用特征分析。特征分析也需要知道攻击行为的具体知识,但是攻击方法的语义描 述是在审计记录中能直接找到的信息形式,不像专家系统一样需要处 理大量数据,从而大大提高了检测效率。这种方法的缺陷是,需要经 常为新发现的系统漏洞更新知识库。此外,由于对不同操作系统平台 的具体攻击方法,以及不同平台的审计方式可能不同,所以对特征分 析检测系统进行构造和维护的工作量较大。,返回本章首页,3状态转换方法状态转换方法使用系统状态和状态转换表达式来描述和检测入侵,采用
23、最优模式匹配技巧来结构化误用检测,增强了检测的速度和灵活性。目前,主要有三种实现方法:状态转换分析、有色Petri-Net和语言/应用编程接口(API)。,返回本章首页,4用于批模式分析的信息检索技术当前大多数入侵检测都是通过对事件数据的实时收集和分析来发现入侵的,然而在攻击被证实之后,要从大量的审计数据中寻找证据信息,就必须借助于信息检索(IR,Information Retrieval)技术,IR技术当前广泛应用于WWW的搜索引擎上。IR系统使用反向文件作为索引,允许高效地搜寻关键字或关键字组合,并使用Bayesian理论帮助提炼搜索。,返回本章首页,5Keystroke Monitor和
24、基于模型的方法Keystroke Monitor是一种简单的入侵检测方法,它通过分析用户击键序列的模式来检测入侵行为,常用于对主机的入侵检测。该方法具有明显的缺点,首先,批处理或Shell程序可以不通过击键而直接调用系统攻击命令序列;其次,操作系统通常不提供统一的击键检测接口,需通过额外的钩子函数(Hook)来监测击键。,返回本章首页,5.2.3 异常检测(Anomaly Detection),异常检测基于一个假定:用户的行为是可预测的、遵循一致性模式的,且随着用户事件的增加异常检测会适应用户行为的变化。用户行为的特征轮廓在异常检测中是由度量(measure)集来描述,度量是特定网络行为的定量
25、表示,通常与某个检测阀值或某个域相联系。异常检测可发现未知的攻击方法,体现了强健的保护机制,但对于给定的度量集能否完备到表示所有的异常行为仍需要深入研究。,返回本章首页,1Denning的原始模型Dorothy Denning于1986年给出了入侵检测的IDES模型,她认为在一个系统中可以包括四个统计模型,每个模型适合于一个特定类型的系统度量。 (1)可操作模型 (2)平均和标准偏差模型 (3)多变量模型 (4)Markov处理模型,返回本章首页,2量化分析异常检测最常用的方法就是将检验规则和属性以数值形式表示的量化分析,这种度量方法在Denning的可操作模型中有所涉及。量化分析通过采用从简
26、单的加法到比较复杂的密码学计算得到的结果作为误用检测和异常检测统计模型的基础。(1)阀值检验 (2)基于目标的集成检查 (3)量化分析和数据精简,返回本章首页,3统计度量 统计度量方法是产品化的入侵检测系统中常用的方法,常见于异常检测。运用统计方法,有效地解决了四个问题:(1)选取有效的统计数据测量点,生成能够反映主体特征的会话向量;(2)根据主体活动产生的审计记录,不断更新当前主体活动的会话向量;(3)采用统计方法分析数据,判断当前活动是否符合主体的历史行为特征;(4)随着时间推移,学习主体的行为特征,更新历史记录。,返回本章首页,4非参数统计度量非参数统计方法通过使用非数据区分技术,尤其是
27、群集分析技术来分析参数方法无法考虑的系统度量。群集分析的基本思想是,根据评估标准(也称为特性)将收集到的大量历史数据(一个样本集)组织成群,通过预处理过程,将与具体事件流(经常映射为一个具体用户)相关的特性转化为向量表示,再采用群集算法将彼此比较相近的向量成员组织成一个行为类,这样使用该分析技术的实验结果将会表明用何种方式构成的群可以可靠地对用户的行为进行分组并识别。,返回本章首页,5基于规则的方法上面讨论的异常检测主要基于统计方法,异常检测的另一个变种就是基于规则的方法。与统计方法不同的是基于规则的检测使用规则集来表示和存储使用模式。(1)Wisdom&Sense方法(2)基于时间的引导机(
28、TIM),返回本章首页,5.2.4 其它检测技术,这些技术不能简单地归类为误用检测或是异常检测,而是提供了一种有别于传统入侵检测视角的技术层次,例如免疫系统、基因算法、数据挖掘、基于代理(Agent)的检测等,它们或者提供了更具普遍意义的分析技术,或者提出了新的检测系统架构,因此无论对于误用检测还是异常检测来说,都可以得到很好的应用。,返回本章首页,1神经网络(Neural Network) 作为人工智能(AI)的一个重要分支,神经网络(Neural Network)在入侵检测领域得到了很好的应用,它使用自适应学习技术来提取异常行为的特征,需要对训练数据集进行学习以得出正常的行为模式。这种方法
29、要求保证用于学习正常模式的训练数据的纯洁性,即不包含任何入侵或异常的用户行为。,返回本章首页,2免疫学方法New Mexico大学的Stephanie Forrest提出了将生物免疫机制引入计算机系统的安全保护框架中。免疫系统中最基本也是最重要的能力是识别“自我/非自我”(self/nonself),换句话讲,它能够识别哪些组织是属于正常机体的,不属于正常的就认为是异常,这个概念和入侵检测中异常检测的概念非常相似。,返回本章首页,3数据挖掘方法Columbia大学的Wenke Lee在其博士论文中,提出了将数据挖掘(Data Mining, DM)技术应用到入侵检测中,通过对网络数据和主机系统
30、调用数据的分析挖掘,发现误用检测规则或异常检测模型。具体的工作包括利用数据挖掘中的关联算法和序列挖掘算法提取用户的行为模式,利用分类算法对用户行为和特权程序的系统调用进行分类预测。实验结果表明,这种方法在入侵检测领域有很好的应用前景。,返回本章首页,4基因算法基因算法是进化算法(evolutionary algorithms)的一种,引入了达尔文在进化论中提出的自然选择的概念(优胜劣汰、适者生存)对系统进行优化。该算法对于处理多维系统的优化是非常有效的。在基因算法的研究人员看来,入侵检测的过程可以抽象为:为审计事件记录定义一种向量表示形式,这种向量或者对应于攻击行为,或者代表正常行为。,返回本
31、章首页,5基于代理的检测近年来,一种基于Agent的检测技术(Agent-Based Detection)逐渐引起研究者的重视。所谓Agent,实际上可以看作是在执行某项特定监视任务的软件实体。基于Agent的入侵检测系统的灵活性保证它可以为保障系统的安全提供混合式的架构,综合运用误用检测和异常检测,从而弥补两者各自的缺陷。,返回本章首页,5.3 分布式入侵检测,分布式入侵检测(Distributed Intrusion Detection)是目前入侵检测乃至整个网络安全领域的热点之一。到目前为止,还没有严格意义上的分布式入侵检测的商业化产品,但研究人员已经提出并完成了多个原型系统。通常采用的
32、方法中,一种是对现有的IDS进行规模上的扩展,另一种则通过IDS之间的信息共享来实现。具体的处理方法上也分为两种:分布式信息收集、集中式处理;分布式信息收集、分布式处理。,返回本章首页,5.3.1 分布式入侵检测的优势,分布式入侵检测由于采用了非集中的系统结构和处理方式,相对于传统的单机IDS具有一些明显的优势:(1)检测大范围的攻击行为(2)提高检测的准确度(3)提高检测效率(4)协调响应措施,返回本章首页,5.3.2 分布式入侵检测的技术难点,与传统的单机IDS相比较,分布式入侵检测系统具有明显的优势。然而,在实现分布检测组件的信息共享和协作上,却存在着一些技术难点。 Stanford R
33、esearch Institute(SRI)在对EMERALD系统的研究中,列举了分布式入侵检测必须关注的关键问题:事件产生及存储、状态空间管理及规则复杂度、知识库管理、推理技术。,返回本章首页,5.3.3 分布式入侵检测现状,尽管分布式入侵检测存在技术和其它层面的难点,但由于其相对于传统的单机IDS所具有的优势,目前已经成为这一领域的研究热点。1Snortnet它通过对传统的单机IDS进行规模上的扩展,使系统具备分布式检测的能力,是基于模式匹配的分布式入侵检测系统的一个具体实现。主要包括三个组件:网络感应器、代理守护程序和监视控制台。,返回本章首页,2Agent-Based 基于Agent的
34、IDS由于其良好的灵活性和扩展性,是分布式入侵检测的一个重要研究方向。国外一些研究机构在这方面已经做了大量工作,其中Purdue大学的入侵检测自治代理(AAFID)和SRI的EMERALD最具代表性。AAFID的体系结构如图5-10所示,其特点是形成了一个基于代理的分层顺序控制和报告结构。,返回本章首页,返回本章首页,3DIDSDIDS(Distributed Intrusion Detection System)是由UC Davis的Security Lab完成的,它集成了两种已有的入侵检测系统,Haystack和NSM。前者由Tracor Applied Sciences and Hays
35、tack实验室针对多用户主机的检测任务而开发,数据源来自主机的系统日志。NSM则是由UC Davis开发的网络安全监视器,通过对数据包、连接记录、应用层会话的分析,结合入侵特征库和正常的网络流或会话记录的模式库,判断当前的网络行为是否包含入侵或异常。,返回本章首页,4GrIDS GrIDS(Graph-based Intrusion Detection System)同样由UC Davis提出并实现,该系统实现了一种在大规模网络中使用图形化表示的方法来描述网络行为的途径,其设计目标主要针对大范围的网络攻击,例如扫描、协同攻击、网络蠕虫等。GrIDS的缺陷在于只是给出了网络连接的图形化表示,具体
36、的入侵判断仍然需要人工完成,而且系统的有效性和效率都有待验证和提高。,返回本章首页,5Intrusion Strategy Boeing公司的Ming-Yuh Huang从另一个角度对入侵检测系统进行了研究,针对分布式入侵检测所存在的问题,他认为可以从入侵者的目的(Intrusion Intention),或者是入侵策略(Intrusion Strategy)入手,帮助我们确定如何在不同的IDS组件之间进行协作检测。对入侵策略的分析可以帮助我们调整审计策略和参数,构成自适应的审计检测系统。,返回本章首页,6数据融合(Data Fusion)Timm Bass提出将数据融合(Data Fusio
37、n)的概念应用到入侵检测中,从而将分布式入侵检测任务理解为在层次化模型下对多个感应器的数据综合问题。在这个层次化模型中,入侵检测的数据源经历了从数据(Data)到信息(Information)再到知识(Knowledge)三个逻辑抽象层次。,返回本章首页,7基于抽象(Abstraction-based)的方法 GMU的Peng Ning在其博士论文中提出了一种基于抽象(Abstraction-based)的分布式入侵检测系统,基本思想是设立中间层(system view),提供与具体系统无关的抽象信息,用于分布式检测系统中的信息共享,抽象信息的内容包括事件信息(event)以及系统实体间的断言
38、(dynamic predicate)。中间层用于表示IDS间的共享信息时使用的对应关系为:IDS检测到的攻击或者IDS无法处理的事件信息作为event,IDS或受IDS监控的系统的状态则作为dynamic predicates。,返回本章首页,5.4 入侵检测系统的标准,从20世纪90年代到现在,入侵检测系统的研发呈现出百家争鸣的繁荣局面,并在智能化和分布式两个方向取得了长足的进展。为了提高IDS产品、组件及与其他安全产品之间的互操作性,DARPA和IETF的入侵检测工作组(IDWG)发起制订了一系列建议草案,从体系结构、API、通信机制、语言格式等方面来规范IDS的标准。,返回本章首页,5
39、.4.1 IETF/IDWG,IDWG定义了用于入侵检测与响应(IDR)系统之间或与需要交互的管理系统之间的信息共享所需要的数据格式和交换规程。IDWG提出了三项建议草案:入侵检测消息交换格式(IDMEF)、入侵检测交换协议(IDXP)以及隧道轮廓(Tunnel Profile)。,返回本章首页,5.4.2 CIDF,CIDF的工作集中体现在四个方面:IDS的体系结构、通信机制、描述语言和应用编程接口API。 CIDF在IDES和NIDES的基础上提出了一个通用模型,将入侵检测系统分为四个基本组件:事件产生器、事件分析器、响应单元和事件数据库。其结构如图5-15所示。,返回本章首页,返回本章首
40、页,5.5 入侵检测系统示例,为了直观地理解入侵检测的使用、配置等情况,这里我们以Snort为例,对构建以Snort为基础的入侵检测系统做概要介绍。,返回本章首页,5.5.1 Snort简介,Snort 是一个开放源代码的免费软件,它基于libpcap 的数据包嗅探器,并可以作为一个轻量级的网络入侵检测系统(NIDS)。 Snort具有很多优势: 代码短小、易于安装、便于配置。 功能十分强大和丰富 集成了多种告警机制支持实时告警功能 具有非常好扩展能力 遵循GPL,可以免费使用,返回本章首页,5.5.2 Snort的体系结构,Snort在结构上可分为数据包捕获和解码子系统、检测引擎,以及日志及
41、报警子系统三个部分。 1数据包捕获和解码子系统该子系统的功能是捕获共享网络的传输数据,并按照TCP/ IP协议的不同层次将数据包解析。 2检测引擎检测引擎是NIDS实现的核心,准确性和快速性是衡量其性能的重要指标。,返回本章首页,为了能够快速准确地进行检测和处理,Snort在检测规则方面做了较为成熟的设计。Snort 将所有已知的攻击方法以规则的形式存放在规则库中,每一条规则由规则头和规则选项两部分组成。规则头对应于规则树结点RTN(Rule Tree Node),包含动作、协议、源(目的)地址和端口以及数据流向,这是所有规则共有的部分。规则选项对应于规则选项结点OTN(Optional Tr
42、ee Node),包含报警信息(msg)、匹配内容(content)等选项,这些内容需要根据具体规则的性质确定。,返回本章首页,检测规则除了包括上述的关于“要检测什么”,还应该定义“检测到了该做什么”。Snort 定义了三种处理方式:alert (发送报警信息)、log(记录该数据包)和pass(忽略该数据包),并定义为规则的第一个匹配关键字。这样设计的目的是为了在程序中可以组织整个规则库,即将所有的规则按照处理方式组织成三个链表,以用于更快速准确地进行匹配。 如图5-17所示 。,返回本章首页,返回本章首页,当Snort 捕获一个数据包时,首先分析该数据包使用哪个IP协议以决定将与某个规则树
43、进行匹配。然后与RTN 结点依次进行匹配,当与一个头结点相匹配时,向下与OTN 结点进行匹配。每个OTN 结点包含一条规则所对应的全部选项,同时包含一组函数指针,用来实现对这些选项的匹配操作。当数据包与某个OTN 结点相匹配时,即判断此数据包为攻击数据包。具体流程见图5-18所示。,返回本章首页,返回本章首页,3日志及报警子系统 一个好的NIDS,更应该提供友好的输出界面或发声报警等。Snort是一个轻量级的NIDS,它的另外一个重要功能就是数据包记录器,它主要采取用TCPDUMP的格式记录信息、向syslog 发送报警信息和以明文形式记录报警信息三种方式。值得提出的是,Snort 在网络数据
44、流量非常大时,可以将数据包信息压缩从而实现快速报警。,返回本章首页,5.5.3 Snort的安装与使用,1.Snort安装模式Snort可简单安装为守护进程模式,也可安装为包括很多其他工具的完整的入侵检测系统。 简单方式安装时,可以得到入侵数据的文本文件或二进制文件,然后用文本编辑器等工具进行查看。 Snort若与其它工具一起安装,则可以支持更为复杂的操作。例如,将Snort数据发送给数据库系统,从而支持通过Web界面进行数据分析,以增强对Snort捕获数据的直观认识,避免耗费大量时间查阅晦涩的日志文件。,返回本章首页,2Snort的简单安装 Snort的安装程序可以在Snort官方网站htt
45、p:/www.snort.org上获取。 (1)安装SnortSnort必须要有libpcap库的支持,在安装前需确认系统已经安装了libpcap库。 rootmail snort-2.8.0# ./configure -enable-dynamicplugin rootmail snort-2.8.0# make rootmail snort-2.8.0# make install,返回本章首页,(2)更新Snort规则 下载最新的规则文件snortrules-snapshot-CURRENT.tar.gz。其中,CURRENT表示最新的版本号。 rootmail snort# mkdir
46、/etc/snort rootmail snort# cd /etc/snort rootmail snort# tar zxvf /path/to/snortrules-snapshot-CURRENT.tar.gz,返回本章首页,(3)配置Snort 建立config文件目录: rootmail snort-2.8.0# mkdir /etc/snort 复制Snort配置文件snort.conf到Snort配置目录: rootmail snort-2.8.0# cp ./etc/snort.conf /etc/snort/ 编辑snort.conf: rootmail snort-2.8
47、.0# vi /etc/snort/snort.conf 修改后,一些关键设置如下: var HOME_NET yournetwork var RULE_PATH /etc/snort/rules preprocessor http_inspect: global iis_unicode_map /etc/snort/rules/unicode.map 1252 include /etc/snort/rules/reference.config include /etc/snort/rules/classification.config,返回本章首页,(4)测试Snort # /usr/loc
48、al/bin/snort -A fast -b -d -D -l /var/log/snort -c /etc/snort/snort.conf查看文件/var/log/messages,若没有错误信息,则表示安装成功。,返回本章首页,3Snort的工作模式Snort有三种工作模式,即嗅探器、数据包记录器、网络入侵检测系统。 (1)嗅探器所谓的嗅探器模式就是Snort从网络上获取数据包然之后显示在控制台上。若只把TCP/IP包头信息打印在屏幕上,则只需要执行下列命令: ./snort -v 若显示应用层数据,则执行: ./snort -vd 若同时显示数据链路层信息,则执行: ./snort
49、-vde,返回本章首页,(2)数据包记录器如果要把所有的数据包记录到硬盘上,则需要指定一个日志目录,Snort将会自动记录数据包: ./snort -dev -l ./log如果网络速度很快,或者希望日志更加紧凑以便事后分析,则应该使用二进制日志文件格式。使用下面的命令可以把所有的数据包记录到一个单一的二进制文件中: ./snort -l ./log -b,返回本章首页,(3)网络入侵检测系统通过下面命令行,可以将Snort启动为网络入侵检测系统模式: ./snort -dev -l ./log -h 192.168.1.0/24 -c snort.confsnort.conf是规则集文件。S
50、nort会将每个包和规则集进行匹配,一旦匹配成功就会采取响应措施。若不指定输出目录,Snort就将日志输出到/var/log/snort目录。,返回本章首页,5.5.4 Snort的安全防护,为保护Snort系统的运行安全,必须采取一些必要的安全防护措施,主要包括: 加固运行Snort系统的主机 在隐秘端口上运行Snort 在不配置IP地址的接口上运行Snort,返回本章首页,5.6 本章小结,入侵检测(Intrusion Detection)是保障网络系统安全的关键部件,它通过监视受保护系统的状态和活动,采用误用检测(Misuse Detection)或异常检测(Anomaly Detection)的方式,发现非授权的或恶意的系统及网络行为,为防范入侵行为提供有效的手段。 入侵检测按照不同的标准有多种分类方法。分布式入侵检测(Distributed Intrusion Detection)对信息的处理方法分为两种,即分布式信息收集、集中式处理和分布式信息收集、分布式处理。,