入侵检测系统(intrusion detection system,简称“IDS”)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。它与其他网络安全设备的不同之处便在于,IDS是一种积极主动的安全防护技术。 IDS最早出现在1980年4月。 1980年代中期,IDS逐渐发展成为入侵检测专家系统(IDES)。 1990年,IDS分化为基于网络的IDS和基于主机的IDS。后又出现分布式IDS。目前,IDS发展迅速,已有人宣称IDS可以完全取代防火墙。
简介IDS是计算机的监视系统,它通过实时监视系统,一旦发现异常情况就发出警告。1以信息来源的不同和检测方法的差异分为几类:根据信息来源可分为基于主机IDS和基于网络的IDS,根据检测方法又可分为异常入侵检测和误用入侵检测。不同于防火墙,IDS入侵检测系统是一个监听设备,没有跨接在任何链路上,无须网络流量流经它便可以工作。因此,对IDS的部署,唯一的要求是:IDS应当挂接在所有所关注流量都必须流经的链路上。在这里,"所关注流量"指的是来自高危网络区域的访问流量和需要进行统计、监视的网络报文。在如今的网络拓扑中,已经很难找到以前的HUB式的共享介质冲突域的网络,绝大部分的网络区域都已经全面升级到交换式的网络结构。因此,IDS在交换式网络中的位置一般选择在尽可能靠近攻击源或者尽可能靠近受保护资源的位置。这些位置通常是:服务器区域的交换机上;Internet接入路由器之后的第一台交换机上;重点保护网段的局域网交换机上。由于入侵检测系统的市场在近几年中飞速发展,许多公司投入到这一领域上来。Venustech(启明星辰)、Internet Security System(ISS)、思科、赛门铁克等公司都推出了自己的产品。
系统组成IETF将一个入侵检测系统分为四个组件:
事件产生器(Event generators),它的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。
事件分析器(Event analyzers),它经过分析得到数据,并产生分析结果。
响应单元(Response units ),它是对分析结果作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的报警。
事件数据库(Event databases )事件数据库是存放各种中间和最终数据的地方的统称,它可以是复杂的数据库,也可以是简单的文本文件。2
系统缺陷1998年2月,Secure Networks Inc.指出IDS有许多弱点,主要为:IDS对数据的检测;对IDS自身攻击的防护。由于当代网络发展迅速,网络传输速率大大加快,这造成了IDS工作的很大负担,也意味着IDS对攻击活动检测的可靠性不高。而IDS在应对自身的攻击时,对其他传输的检测也会被抑制。同时由于模式识别技术的不完善,IDS的高虚警率也是它的一大问题。
安全策略入侵检测系统根据入侵检测的行为分为两种模式:异常检测和误用检测。前者先要建立一个系统访问正常行为的模型,凡是访问者不符合这个模型的行为将被断定为入侵;后者则相反,先要将所有可能发生的不利的不可接受的行为归纳建立一个模型,凡是访问者符合这个模型的行为将被断定为入侵。
这两种模式的安全策略是完全不同的,而且,它们各有长处和短处:异常检测的漏报率很低,但是不符合正常行为模式的行为并不见得就是恶意攻击,因此这种策略误报率较高;误用检测由于直接匹配比对异常的不可接受的行为模式,因此误报率较低。但恶意行为千变万化,可能没有被收集在行为模式库中,因此漏报率就很高。这就要求用户必须根据本系统的特点和安全要求来制定策略,选择行为检测模式。现在用户都采取两种模式相结合的策略。1
通信协议IDS系统内部各组件之间需要通信,不同厂商的IDS系统之间也需要通信。因此,有必要定义统一的协议。IETF目前有一个专门的小组Intrusion Detection Working Group (IDWG)负责定义这种通信格式,称作Intrusion Detection Exchange Format(IDEF),但还没有统一的标准。设计通信协议时应考虑以下问题:系统与控制系统之间传输的信息是非常重要的信息,因此必须要保持数据的真实性和完整性。必须有一定的机制进行通信双方的身份验证和保密传输(同时防止主动和被动攻击);3通信的双方均有可能因异常情况而导致通信中断,IDS系统必须有额外措施保证系统正常工作。
检测技术对各种事件进行分析,从中发现违反安全策略的行为是入侵检测系统的核心功能。从技术上,入侵检测分为两类:一种基于标志(signature-based),另一种基于异常情况(anomaly-based)。4
对于基于标志的检测技术来说,首先要定义违背安全策略的事件的特征,如网络数据包的某些头信息。检测主要判别这类特征是否在所收集到的数据中出现。此方法非常类似杀毒软件。
而基于异常的检测技术则是先定义一组系统“正常”情况的数值,如CPU利用率、内存利用率、文件校验和等(这类数据可以人为定义,也可以通过观察系统、并用统计的办法得出),然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。
两种检测技术的方法、所得出的结论有非常大的差异。基于标志的检测技术的核心是维护一个知识库。对于已知的攻击,它可以详细、准确的报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以(至少在理论上可以)判别更广范、甚至未发觉的攻击。
检测方法异常检测方法在异常入侵检测系统中常常采用以下几种检测方法:5
基于贝叶斯推理检测法:是通过在任何给定的时刻,测量变量值,推理判断系统是否发生入侵事件。
****基于特征选择检测法:指从一组度量中挑选出能检测入侵的度量,用它来对入侵行为进行预测或分类。
基于贝叶斯网络检测法:用图形方式表示随机变量之间的关系。通过指定的与邻接节点相关一个小的概率集来计算随机变量的联接概率分布。按给定全部节点组合,所有根节点的先验概率和非根节点概率构成这个集。贝叶斯网络是一个有向图,弧表示父、子结点之间的依赖关系。当随机变量的值变为已知时,就允许将它吸收为证据,为其他的剩余随机变量条件值判断提供计算框架。
基于模式预测的检测法:事件序列不是随机发生的而是遵循某种可辨别的模式是基于模式预测的异常检测法的假设条件,其特点是事件序列及相互联系被考虑到了,只关心少数相关安全事件是该检测法的最大优点。
基于统计的异常检测法:是根据用户对象的活动为每个用户都建立一个特征轮廓表,通过对当前特征与以前已经建立的特征进行比较,来判断当前行为的异常性。用户特征轮廓表要根据审计记录情况不断更新,其保护去多衡量指标,这些指标值要根据经验值或一段时间内的统计而得到。
基于机器学习检测法:是根据离散数据临时序列学习获得网络、系统和个体的行为特征,并提出了一个实例学习法IBL,IBL是基于相似度,该方法通过新的序列相似度计算将原始数据(如离散事件流和无序的记录)转化成可度量的空间。然后,应用IBL学习技术和一种新的基于序列的分类方法,发现异常类型事件,从而检测入侵行为。其中,成员分类的概率由阈值的选取来决定。
数据挖掘检测法:数据挖掘的目的是要从海量的数据中提取出有用的数据信息。网络中会有大量的审计记录存在,审计记录大多都是以文件形式存放的。如果靠手工方法来发现记录中的异常现象是远远不够的,所以将数据挖掘技术应用于入侵检测中,可以从审计数据中提取有用的知识,然后用这些知识区检测异常入侵和已知的入侵。采用的方法有KDD算法,其优点是善于处理大量数据的能力与数据关联分析的能力,但是实时性较差。
基于应用模式的异常检测法:该方法是根据服务请求类型、服务请求长度、服务请求包大小分布计算网络服务的异常值。通过实时计算的异常值和所训练的阈值比较,从而发现异常行为。
基于文本分类的异常检测法:该方法是将系统产生的进程调用集合转换为“文档”。利用K邻聚类文本分类算法,计算文档的相似性。
误用检测方法误用入侵检测系统中常用的检测方法有:
模式匹配法:是常常被用于入侵检测技术中。它是通过把收集到的信息与网络入侵和系统误用模式数据库中的已知信息进行比较,从而对违背安全策略的行为进行发现。模式匹配法可以显著地减少系统负担,有较高的检测率和准确率。
专家系统法:这个方法的思想是把安全专家的知识表示成规则知识库,再用推理算法检测入侵。主要是针对有特征的入侵行为。
基于状态转移分析的检测法:该方法的基本思想是将攻击看成一个连续的、分步骤的并且各个步骤之间有一定的关联的过程。在网络中发生入侵时及时阻断入侵行为,防止可能还会进一步发生的类似攻击行为。在状态转移分析方法中,一个渗透过程可以看作是由攻击者做出的一系列的行为而导致系统从某个初始状态变为最终某个被危害的状态。14
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所