第一章 入侵检测系统概念
当越来越多的公司将其核心业务向互联网转移的时候,网络安全作为一个无法回避的问题呈现在人们面前。传统上,公司一般采用防火墙作为安全的第一道防线。
而随着攻击者知识的日趋成熟,攻击工具与手法的日趋复杂多样,单纯的防火墙策略已经无法满足对安全高度敏感的部门的需要,网络的防卫必须采用一种纵深的、多样的手段。与此同时,当今的网络环境也变得越来越复杂,各式各样的复杂的设备,需要不断升级、补漏的系统使得网络管理员的工作不断加重,不经意的疏忽便有可能造成安全的重大隐患。在这种环境下,入侵检测系统成为了安全市场上新的热点,不仅愈来愈多的受到人们的关注,而且已经开始在各种不同的环境中发挥其关键作用。
本文中的“入侵”(Intrusion)是个广义的概念,不仅包括被发起攻击的人(如恶意的黑客)取得超出合法范围的系统控制权,也包括收集漏洞信息,造成拒绝访问(Denial of Service)等对计算机系统造成危害的行为。
入侵检测(Intrusion Detection),顾名思义,便是对入侵行为的发觉。它通过对计算机网络或计算机系统中得若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。进行入侵检测的软件与硬件的组合便是入侵检测系统(Intrusion Detection System,简称IDS)。与其他安全产品不同的是,入侵检测系统需要更多的智能,它必须可以将得到的数据进行分析,并得出有用的结果。一个合格的入侵检测系统能大大的简化管理员的工作,保证网络安全的运行。
具体说来,入侵检测系统的主要功能有([2]):
a.监测并分析用户和系统的活动;
b.核查系统配置和漏洞;
c.评估系统关键资源和数据文件的完整性;
d.识别已知的攻击行为;
e.统计分析异常行为;
f.操作系统日志管理,并识别违反安全策略的用户活动。
由于入侵检测系统的市场在近几年中飞速发展,许多公司投入到这一领域上来。除了国外的ISS、axent、NFR、cisco等公司外,国内也有数家公司(如中联绿盟,中科网威等)推出了自己相应的产品。但就目前而言,入侵检测系统还缺乏相应的标准。目前,试图对IDS进行标准化的工作有两个组织:IETF的Intrusion Detection Working Group (idwg)和Common Intrusion Detection Framework (CIDF),但进展非常缓慢,尚没有被广泛接收的标准出台。
第二章 入侵检测系统模型
2.1 CIDF模型
Common Intrusion Detection Framework (CIDF)(http://www.gidos.org/)阐述了一个入侵检测系统(IDS)的通用模型。它将一个入侵检测系统分为以下组件:
l事件产生器(Event generators)
l 事件分析器(Event analyzers
l 响应单元(Response units )
l 事件数据库(Event databases )
CIDF将IDS需要分析的数据统称为事件(event),它可以是网络中的数据包,也可以是从系统日志等其他途径得到的信息。
事件产生器的目的是从整个计算环境中获得事件,并向系统的其他部分提供此事件。事件分析器分析得到的数据,并产生分析结果。响应单元则是对分析结果作出作出反应的功能单元,它可以作出切断连接、改变文件属性等强烈反应,也可以只是简单的报警。事件数据库是存放各种中间和最终数据的地方的统称,它可以是复杂的数据库,也可以是简单的文本文件。
在这个模型中,前三者以程序的形式出现,而最后一个则往往是文件或数据流的形式。
在其他文章中,经常用数据采集部分、分析部分和控制台部分来分别代替事件产生器、事件分析器和响应单元这些术语。且常用日志来简单的指代事件数据库。如不特别指明,本文中两套术语意义相同。
2.2 IDS分类
一般来说,入侵检测系统可分为主机型和网络型。
主机型入侵检测系统往往以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机型入侵检测系统保护的一般是所在的系统。
网络型入侵检测系统的数据源则是网络上的数据包。往往将一台机子的网卡设于混杂模式(promisc mode),监听所有本网段内的数据包并进行判断。一般网络型入侵检测系统担负着保护整个网段的任务。
不难看出,网络型IDS的优点主要是简便:一个网段上只需安装一个或几个这样的系统,便可以监测整个网段的情况。且由于往往分出单独的计算机做这种应用,不会给运行关键业务的主机带来负载上的增加。但由于现在网络的日趋复杂和高速网络的普及,这种结构正受到越来越大的挑战。一个典型的例子便是交换式以太网。
而尽管主机型IDS的缺点显而易见:必须为不同平台开发不同的程序、增加系统负荷、所需安装数量众多等,但是内在结构却没有任何束缚,同时可以利用操作系统本身提供的功能、并结合异常分析,更准确的报告攻击行为。参考文献[7]对此做了描述,感兴趣的读者可参看。
入侵检测系统的几个部件往往位于不同的主机上。一般来说会有三台机器,分别运行事件产生器、事件分析器和响应单元。在安装IDS的时候,关键是选择数据采集部分所在的位置,因为它决定了“事件”的可见度。
对于主机型IDS,其数据采集部分当然位于其所监测的主机上。
对于网络型IDS,其数据采集部分则有多种可能:
(1)如果网段用总线式的集线器相连,则可将其简单的接在集线器的一个端口上即可;
(2)对于交换式以太网交换机,问题则会变得复杂。由于交换机不采用共享媒质的办法,传统的采用一个sniffer来监听整个子网的办法不再可行。可解决的办法有:
a.交换机的核心芯片上一般有一个用于调试的端口(span port),任何其他端口的进出信息都可从此得到。如果交换机厂商把此端口开放出来,用户可将IDS系统接到此端口上。
优点:无需改变IDS体系结构。
缺点:采用此端口会降低交换机性能。
b.把入侵检测系统放在交换机内部或防火墙内部等数据流的关键入口、出口。
优点:可得到几乎所有关键数据。
缺点:必须与其他厂商紧密合作,且会降低网络性能。
c.采用分接器(Tap),将其接在所有要监测的线路上。
优点:再不降低网络性能的前提下收集了所需的信息。
缺点:必须购买额外的设备(Tap);若所保护的资源众多,IDS必须配备众多网络接口。
d.可能唯一在理论上没有限制的办法就是采用主机型IDS。
2.3 通信协议
IDS系统组件之间需要通信,不同的厂商的IDS系统之间也需要通信。因此,定义统一的协议,使各部分能够根据协议所致订的的标准进行沟通是很有必要的。
IETF目前有一个专门的小组Intrusion Detection Working Group (idwg)负责定义这种通信
格式,称作Intrusion Detection Exchange Format。目前只有相关的草案(internet draft),并未形成正式的RFC文档。尽管如此,草案为IDS各部分之间甚至不同IDS系统之间的通信提供了一定的指引。
IAP(Intrusion Alert Protocol)是idwg制定的、运行于TCP之上的应用层协议,其设计在很大程度上参考了HTTP,但补充了许多其他功能(如可从任意端发起连接,结合了加密、身份验证等)。对于IAP的具体实现,请参看 [9],其中给出了非常详尽的说明。这里我们主要讨论一下设计一个入侵检测系统通信协议时应考虑的问题:
1. 分析系统与控制系统之间传输的信息是非常重要的信息,因此必须要保持数据的真实性和完整性。必须有一定的机制进行通信双方的身份验证和保密传输(同时防止主动和被动攻击)。
2. 通信的双方均有可能因异常情况而导致通信中断,IDS系统必须有额外措施保证系统正常工作。
2.4入侵检测技术
对各种事件进行分析,从中发现违反安全策略的行为是入侵检测系统的核心功能。从技术上,入侵检测分为两类:一种基于标志(signature-based),另一种基于异常情况(anomaly-based)。
对于基于标识的检测技术来说,首先要定义违背安全策略的事件的特征,如网络数据包的某些头信息。检测主要判别这类特征是否在所收集到的数据中出现。此方法非常类似杀毒软件。
而基于异常的检测技术则是先定义一组系统“正常”情况的数值,如CPU利用率、内存利用率、文件校验和等(这类数据可以人为定义,也可以通过观察系统、并用统计的办法得出),然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何定义所谓的“正常”情况。
两种检测技术的方法、所得出的结论有非常大的差异。基于异常的检测技术的核心是维护一个知识库。对于已知得攻击,它可以详细、准确的报告报告出攻击类型,但是对未知攻击却效果有限,而且知识库必须不断更新。基于异常的检测技术则无法准确判别出攻击的手法,但它可以(至少在理论上可以)判别更广范、甚至未发觉的攻击。
如果条件允许,两者结合的检测会达到更好的效果。
第四章 存在的问题
尽管有众多的商业产品出现,与诸如防火墙等技术高度成熟的产品相比,入侵检测系统还存在相当多的问题。这一章我们便要讨论一下对其进行威胁的主要因素,值得注意的是,这些问题大多是目前入侵检测系统的结构所难以克服的(包括waRcher),而且这些矛盾可能越来越尖锐。
以下便是对入侵检测产品提出挑战的主要因素[3]:
1.攻击者不断增加的知识,日趋成熟多样自动化工具,以及越来越复杂细致的攻击手法。
下图是CERT每年处理的安全事件(纵坐标)的统计:
不难看出,安全问题正日渐突出,尤其是2000年初出现了对诸如Yahoo,ebay等著名ICP的攻击事件。IDS必须不断跟踪最新的安全技术,才能不致被攻击者远远超越。
2.恶意信息采用加密的方法传输。
网络入侵检测系统通过匹配网络数据包发现攻击行为,IDS往往假设攻击信息是通过明文传输的,因此对信息的稍加改变便可能骗过IDS的检测。TFN现在便已经通过加密的方法传输控制信息。还有许多系统通过VPN(虚拟专用网)进行网络之间的互联,如果IDS不了解其所用的隧道机制,会出现大量的误报和漏报。
3.必须协调、适应多样性的环境中的不同的安全策略。
网络及其中的设备越来越多样化,即存在关键资源如邮件服务器、企业数据库,也存在众多相对不是很重要的PC机。不同企业之间这种情况也往往不尽相同。IDS要能有所定制以更适应多样的环境要求。
4.不断增大的网络流量。
用户往往要求IDS尽可能快的报警,因此需要对获得的数据进行实时的分析,这导致对所在系统的要求越来越高,商业产品一般都建议采用当前最好的硬件环境(如NFR5.0要求主频最少700以上的机器)。尽管如此,对百兆以上的流量,单一的IDS系统仍很难应付。可以想见,随着网络流量的进一步加大(许多大型ICP目前都有数百兆的带宽),对IDS将提出更大的挑战,在PC机上运行纯软件系统的方式需要突破。
5.广泛接受的术语和概念框架的缺乏。
入侵检测系统的厂家基本处于各自为战的情况,标准的缺乏使得其间的互通几乎不可能。
6.不断变化的入侵检测市场给购买、维护IDS造成的困难。
入侵检测系统是一项新生事物,随着技术水平的上升和对新攻击的识别的增加,IDS需要不断的升级才能保证网络的安全性,而不同厂家之间的产品在升级周期、升级手段上均有很大差别。因此用户在购买时很难做出决定,同时维护时也往处于很被动的局面。
7.采用不恰当的自动反应所造成的风险。
入侵检测系统可以很容易的与防火墙结合,当发现有攻击行为时,过滤掉所有来自攻击者的IP的数据。但是,不恰当的反应很容易带来新的问题,一个典型的例子便是:攻击者假冒大量不同的IP进行模拟攻击,而IDS系统自动配置防火墙将这些实际上并没有进行任何攻击的地址都过滤掉,于是形成了新的拒绝访问攻击(DOS)。
8.对IDS自身的攻击。
和其他系统一样,IDS本身也往往存在安全漏洞。如果查询bugtraq的邮件列表,诸如Axent NetProwler,NFR,ISS Realsecure等知名产品都有漏洞被发觉出来。若对IDS攻击成功,则直接导致其报警失灵,入侵者在其后所作的行为将无法被记录。(这也是为什么安全防卫必须多样化的原因之一。)
9.大量的误报和漏报使得发现问题的真正所在非常困难。
采用当前的技术及模型,完美的入侵检测系统无法实现。参考文献[1]中提到了若干种逃避IDS检测的办法,这种现象存在的主要原因是:
IDS必须清楚的了解所有操作系统网络协议的运作情况,甚至细节,才能准确的进行分析,否则[1]中提到的insertion,evasion的问题便无法解决。而不同操作系统之间,甚至同一操作系统的不同版本之间对协议处理的细节均有所不同。而力求全面则必然违背IDS高效工作的原则。
10.客观的评估与测试信息的缺乏。
11.交换式局域网造成网络数据流的可见性下降,同时更快的网络使数据的实时分析越发困难。
第四章 结论
未来的入侵检测系统将会结合其它网络管理软件,形成入侵检测、网络管理、网络监控三位一体的工具。强大的入侵检测软件的出现极大的方便了网络的管理,其实时报警为网络安全增加了又一道保障。尽管在技术上仍有许多未克服的问题,但正如攻击技术不断发展一样,入侵的检测也会不断更新、成熟。同时,正如本文一开始便提到的,网络安全需要纵深的、多样的防护。即使拥有当前最强大的入侵检测系统,如果不及时修补网络中的安全漏洞的话,安全也无从谈起。
参考文献
[1]《Insertion, Evasion, and Denial of Service:Eluding Network Intrusion Detecti
on》
Thomas H. Ptacektqbf@securenetworks.com
Timothy N. Newsham newsham@securenetworks.com
Secure Networks, Inc.
January, 1998
[2]《An Introduction to Intrusion Detection& ASSESSMENT》
ICSA, Inc.
[3]《State of the Practice of Intrusion Detection Technologies》
Julia Allen, Alan Christie, William Fithen, John McHugh,Jed Pickel ,
Ed Stoner等
January 2000
[4]《IDS Buyer’s Guide》
ICSA lab
[5]《IDS FAQ》
Robert Graham (nids-faq@RobertGraham.com)
March 21, 2000
[6]《Network Based Intrusion Detection-A review of technologies》
DENMAC SYSTEMS, INC
NOVEMBER 1999
[7]《Next Generation Intrusion Detection in High-Speed Networks》
Network Associates
[8]《Intrusion Detection Message Exchange Requirements》
Internet-Draft Internet Engineering Task Force
Wood, M. Internet Security Systems
October, 1999
[9]《Intrusion Alert Protocol - IAP》
Internet DraftInternet Engineering Task Force
Gupta Hewlett-Packard
March 31, 2000
[10]《Building Into The Linux Network Layer 》
kossak
Phrack Magazine Vol. 9 , Issue 55 , 09.09.99 , 12 of 19
[11]《Watcher》
hyperion 〈hyperion@hacklab.com〉
Phrack Magazine Volume 8, Issue 53 July 8, 1998, article 11 of 15
[12]《Designing and Attacking Port Scan Detection Tools》
solar designer 〈solar@false.com〉
Phrack Magazine Volume 8, Issue 53 July 8, 1998, article 13 of 15
[13]《The Art of Port Scanning》
Fyodor 〈fyodor@dhp.com〉
Phrack Magazine Volume 7, Issue 51 September 01, 1997, article 11 of 17
[14]《Remote OS detection via TCP/IP Stack FingerPrinting》
Fyodor
October 18, 1998
[15]《UNIX network programming》
W.Richard Stevens
ISBN 7-302-02942-3
[16]《Developing linux application with GTK+ and GDK》
Eric Harlow
ISBN 7-5053-5680-1
[17] 《The Common Intrusion Detection Framework Architecture》
Phil Porras, SRI
Dan Schnackenberg, Boeing
Stuart Staniford-Chen, UC
Davis, editor
Maureen Stillman, Oddysey Research
Felix Wu, NCSU
[18]《 A Common Intrusion Detection Framework》
Clifford Kahn, Phillip A. Porras ,Stuart Staniford-Chen ,Brian Tung
15 July 1998
原作者:yawl