在开始今天的文章之前,请大家先看下这个视频,简单入个门:
https://cloud.tencent.com/developer/video/23621
通过电子手段对一个组织信息库的恶意攻击称为信息战 (information warfare) 。攻击的目的可能干扰组织的正常活动,甚至企图对组织的信息库造成严重的破坏。对信息战的各种抵抗措施都可归结为三类:保护、检测、响应。
**保护** (入侵的防范)指保护硬件、软件、数据抵御各种攻击的技术。目前各种网络安全设施如防火墙及 VPN,各种加密技术,身份认证技术,易攻击性扫描等都属于保护的范围之内,它们是计算机系统的第一道防线。
**检测** (入侵的检测)研究如何高效正确地检测网络攻击。只有入侵防范不足以保护计算机的安全,任何系统及协议都不可避免地存在缺陷,可能是协议本身也可能是协议的实现,还有一些技术之外的社会关系问题,都能威胁信息安全。因此即使采用这些保护措施,入侵者仍可能利用相应缺陷攻入系统,这意味着入侵检测具有其他安全措施所不能代替的作用。
**响应** (入侵的响应)是入侵检测之后的处理工作,主要包括损失评估,根除入侵者留下的后门,数据恢复,收集入侵者留下的证据等。这三种安全措施构成完整的信息战防御系统。
入侵检测(Intrusion Detection ,ID)是本章讨论的主题之一,它通过监测计算机系统的某些信息,加以分析,检测入侵行为,并做出反应。入侵检测系统所检测的系统信息包括系统记录,网络流量,应用程序日志等。入侵( Intrusion )定义为未经授权的计算机使用者以及不正当使用 (misuse)计算机的合法用户(内部威胁),危害或试图危害资源的完整性、保密性、可用性的行为。入侵检测系统(Intrusion DetectionSystem,IDS)是实现入侵检测功能的硬件与软件。入侵检测基于这样一个假设,即:入侵行为与正常行为有显着的不同,因而是可以检测的。入侵检测的研究开始于 20世纪80年代,进入90年代入侵检测成为研究与应用的热点,其间出现了许多研究原型与商业产品。
入侵检测系统在功能上是入侵防范系统的补充, 而并不是入侵防范系统的替代。相反,它与这些系统共同工作,检测出已经躲过这些系统控制的攻击行为。入侵检测系统是计算机系统安全、网络安全的第二道防线。
一个理想的入侵检测系统具有如下特性:
当被监控系统的规模和受攻击的机会增加时,我们认为下列的特征也同样重要:
目前的入侵检测系统(包括研究的原型和商业化的 IDS)的数目已经超过一百个,它们只具有上述特征的一部分。
CIDF (Common Intrusion Detection Framework) 定义了通用的IDS系统结构,它将入侵检测系统分为四个功能模块:
**事件产生器**(Event generater, E-box)收集入侵检测事件,并提供给IDS其他部件处理,是IDS的信息源。事件包含的范围很广泛, 既可以是网络活动也可是系统调用序列等系统信息。事件的质量、数量与种类对 IDS性能的影响极大。
**事件分析器**(Analysis engine, A-box )对输入的事件进行分析并检测入侵。许多IDS的研究都集中于如何提高事件分析器的能力 ,包括提高对已知入侵识别的准确性以及提高发现未知入侵的几率等。
**事件数据库**(Event database, D-box )E-boxes 和 A-boxes 产生大量的数据,这些数据必须被妥善地存储,以备将来使用。 D-box的功能就是存储和管理这些数据 ,用于IDS的训练和证据保存。
**事件响应器**(Response unit, C-box)对入侵做出响应,包括向管理员发出警告,切断入侵连接,根除入侵者留下的后门以及数据恢复等。
CIDF 概括了IDS的功能,并进行了合理的划分。利用这个模型可描述当今现有的各种IDS的系统结构。对IDS的设计及实现提供了有价值的指导。
为了准确地分类,首先要确定用来分类的 IDS特征。IDS是复杂的系统,若只用一种特征分类,结果将是粗糙的。因此本章根据多种特征对 IDS进行了不同角度的分类。事件分析器是IDS的核心部分,故首先对检测方法进行分类。其次从事件产生器的角度分类,将采集事件种类或采集事件的方法作为分类标准。
入侵检测的方法可大体分为两类:滥用检测 (misuse detection) 、异常检测(anomaly detection) 。在IDS中,任何一个事件都可能属于以下三种情况 :
第三种事件可能是一种未知的入侵 , 也可能是正常状态,但在现有的系统和技术下无法判定。目前的检测方法都是对已知入侵和已知正常状态的识别,其中滥用检测识别已知入侵,但对于无法判定状态中的未知入侵将漏报 (false negative) ,异常检测根据已知的正常状态将已知入侵、无法判定状态都当作异常,因此会产生误报 (falsepositive) 。
根据对已知入侵的知识,在输入事件中检测入侵。这种方法不关心正常行为,只研究已知入侵,能较准确地检测已知入侵,但对未知入侵的检测能力有限。目前大多数的商业IDS都使用此类方法。滥用检测所采用的技术包括:
使用专家系统技术,用规则表示入侵。通常使用的是 forward-chaining 、production-based 等专家系统工具。例如DARPA的Emerald项目,将P-BEST工具箱应用于入侵检测。
将入侵表示为一系列系统状态转换,通过监视系统或网络状态的改变发现入侵。典型系统是NetSTAT。
将已知攻击模式与输入事件进行匹配以判定入侵的发生,这种方法具有速度高、扩展性好的特点,但容易产生误报。典型系统包括 shadow、Bro和Snort等。
与滥用检测相反,异常检测对系统正常状态进行研究,通过监测用户行为模式、主机系统调用特征、网络连接状态等,建立系统常态模型。在运行中,将当前系统行为与常态模型进行比较,根据其与常态偏离的程度判定事件的性质。这种方法很有可能检测到未知入侵与变种攻击,但现有系统通常都存在大量的误报。未知入侵的检测是IDS中最具挑战性的问题,其难度比不正当行为检测要大。异常检测通常使用统计学方法和机器学习方法。
使用统计分析方法建立系统常态模型。统计的数据源包括:用户的击键特征、telnet 对话的平均长度等。通过监测输入值与期望值的偏离程度判断事件的属性,Emerald和cmds都包括了这种方式。
将机器学习领域的方法和工具如神经网络、数据挖掘、遗传算法、贝叶斯网络和人工免疫系统等应用于异常检测中。这种方法也是通过建立常态模型进行异常识别。每种方法都具有不同的适用范围和特色。目前研究的热点之一是噪声数据学习。
上述两类检测方法各有所长,滥用检测能够准确高效地发现已知攻击;异常检测能识别未知攻击。目前任何一种系统都不能很好地完成全部入侵检测任务。混合 IDS中同时包含模式识别与异常识别系统,并且根据两种方法的特点对其进行分工,既能精确识别已知攻击,又能发现部分未知攻击,可减少误报和漏报。Emerlad是一种典型的混合系统。
从IDS所监视的事件种类上可分为基于网络的 IDS(Network-based IDS,NIDS)和基于主机的IDS。按照IDS的响应方式可分为实时 IDS和非实时IDS,按照采集事件的方式分为分布式 IDS与集中式IDS。
基于主机的IDS数据源包括:系统调用序列,存储系统的活动记录,系统日志等。由于基于主机的IDS对主机的信息有充分的掌握并且拥有对主机的较强的控制权,因此与网络入侵检测系统相比,其检测的准确性更高,误报率更低。同时基于主机的IDS更难以欺骗,对攻击的响应也更有效:可切断入侵连接,杀死进程。它的缺点是只能对一个主机进行保护,并对主机产生一定的负担,而且移植性差。
基于网络的IDS通过监视网络流量检测入侵活动,简称为网络入侵检测系统(NIDS)。NIDS能对整个网络加以保护,其优点在于简便性和可移植性。 NIDS的使用不会对现有网络系统造成明显影响,并能应用于各种网络环境。网络入侵检测系统由于只处理网络数据,对数据的语义掌握是不充分的,容易受到攻击和欺骗。适应高速网及提高可扩展性是 NIDS需要解决的问题。
以上两种IDS都不能单独完成有效的入侵检测,二者的结合能达到取长补短的效果。目前一些商业 IDS已经采用了这种方案,如 RealSecurity,Axnet。
IDS的应用规模也是一个重要的参数。 现有的商业IDS的应用范围都是局域网。随着网络入侵的发展,攻击已进化为从不同主机发起的协同攻击。对这种攻击的检测是现有IDS所不能胜任的,需要依靠多点分布式网络入侵检测系统,通过联防来检测。
IDS的研究从上世纪80年代就已开始,第一个商业IDS也在1991年诞生。目前各种IDS研究项目和商业产品的数量极为庞大,下面对具有代表性的入侵检测系统加以介绍,分为商业IDS、IDS研究项目和自由软件三个类别。
Snort是一种运行于单机的基于滥用检测的网络入侵检测系统。 Snort通过libpcap 获取网络包,并进行协议分析。它定义了一种简单灵活的网络入侵描述语言,对网络入侵进行描述 (入侵特征或入侵信号)。Snort根据入侵描述对网络数据进行匹配和搜索,能够检测到多种网络攻击与侦察,包括 :缓冲区溢出攻击,端口扫描, CGI攻击,SMB侦察等。并提供了多种攻击响应方式。对于最新的攻击方法,使用 Snort的入侵描述语言能够快速方便地写出新攻击的描述,从而使 Snort能够检测到这种攻击。在Internet 上已建立了发布 Snort入侵模式数据库的站点。 Snort是极具活力的自由软件,在世界各地的志愿者开发下,技术和功能在不断提高。
国际市场上的主流商业 IDS产品大部分为基于网络的,采用滥用检测方法的系统。主要有:
RealSecure 由Internet Security Systems(ISS)开发,包括三种系统部件:
RealSecure属于分布式结构,每个网络监视器运行于专用的工作站上,监视不同的网段。 RealSecure的入侵检测方法属于滥用检测,能够检测几乎所有的主流攻击方式,并实现了基于主机检测和基于网络检测的无缝集成。对于不同的应用程序如 Exchange、MS SQL、LDAP、Oracle和Sybase等,RealSecure提供了专门的系统代理进行入侵检测。整个系统由一个管理程序进行配置和与用户的交互,可提供安全报告等信息。RealSecure的缺点是无法进行包重组,这使得它容易受到欺骗。ISS在七种IDS的评测中得到了最高的评价。
Network Flight Recorder? (NFR) 是一种基于滥用检测的网络入侵检测系统。它提供两种版本:商业版,研究版(提供源码),目前已停止了研究版的发行。 NFR使用经过修改的Libpcap进行网络抓包,并拥有一种完善的包分析脚本语言 N-code,通过它编写对各种攻击的检测及处理程序。 NFR是世界上第一种具有 TCP包重组功能的IDS产品,这使得NFR能够抵抗Ptacek和Newsham提出的躲避IDS的方法。
EMERALD (Event Monitoring Enabling Responses to Anomalous LiveDisturbances)是DARPA入侵检测研究的一个子项目,集成了滥用检测模块和异常检测分析模块协同进行分析。它的开发充分应用了软件工程的思想,系统各模块具有独立性、可重用性。系统的设计目标包括可快速集成新颖的分析技术,能够迅速适应现有网络环境配置的动态改变等。
EMERALD 应用了专家系统P-BEST实现滥用检测,应用统计分析技术实现异常检测。系统结构是一种易扩充的分布式结构,监视器之间可进行通信,形成分层次的结构。监视器具有跨网通信能力,可共享分析方法,协作检测分布式网络攻击,适合于大型广域网的入侵检测。EMERALD 仍在不断的发展,它采用的技术和方法代表着 IDS技术发展的方向。
JAM是DARPA的一个研究项目,采用了分布式多代理结构。每个agent在不同的数据源上分布式学习,并共享知识。JAM还应用了数据挖掘技术和 meta-learning 技术用于异常检测。目前 JAM正在从实验系统转向应用,其技术将应用于 NFR的新一代产品中。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。