| 移动代理在入侵检测系统中的应用 入侵检测系统是一种主动的网络安全防护措施,它从系统内部和各种网络资源中主动采集信息,从中分析可能的网络入侵或攻击。一般来说,入侵检测系统还应对入侵行为做出紧急响应。 国外从八十年代初就开始了对入侵检测的研究。早期的入侵活动比较简单,通常依靠系统或协议中的明显漏洞来获得非法权限,入侵过程也比较单一,以手工操作为多。这类入侵行为很容易通过简单特征串搜索而捕获,因此这个时期的入侵检测系统的结构也比较简单,通常可分为引擎部分和控制部分。引擎部分负责检测信息包并发出警报,控制部分接收警报并产生安全报告,网络入侵特征存放于攻击特征数据库。 近年来,入侵的方法已经变得多样化和复杂化,范围也从针对特定主机的攻击上升为针对网络的全面攻击。例如,分布式拒绝服务攻击(DDoS)就是以分散在互联网上的大量主机系统协同攻击目标主机的。因此,仅仅依靠攻击特征数据库中保存的特征串在主机一级进行检测已不能得到满意的结果。研究人员发展了许多新的技术,而采用代理的分布式系统是一种较好的解决办法。 代理和移动代理 代理 Purdue大学COAST小组的Autonomous Agent for Intrusion Detection,首先将代理的概念用到入侵检测系统中。代理的定义为:在特定环境中能够连续并自主地工作的软件实体,它随外界条件的改变而灵活、智能地适应环境。实际上,代理就是在主机上能独立完成一定检测功能的软件单元。该系统采用了层次型结构,运行于主机上的各个代理采集操作系统以及网络活动的信息,单个代理并不能做出任何决断,只是将信息交给传输器。传输器组合从各个代理传入的信息,构造出当时主机所处的状态,从而做出警告判断或者将处理结果传给高层,即监视器。监视器构造出整个网络的状态,然后做出判断。 移动代理 在分布式系统的范畴中,代理是指分布式系统中的节点实体,一般用来进行信息收集和节点控制等工作。由于分布式系统拓扑结构的特点,代理往往处于系统网络结构的末端,节点的信息非常有限和单一,所以这些代理往往只能完成相对简单的任务,例如简单数据采集和转发等。 移动代理是一种特殊的代理。一般情况下,它需要运行在特定的虚拟机环境中。移动代理与普通程序的最大不同就是它可以在运行期间在虚拟机之间迁移而无需中止程序的执行。其工作原理图如下图: 从图1中可以看出,移动代理系统具有跨平台的特性,其工作平台可以混合使用不同厂家的系统。通过在各个操作系统中运行移动代理的虚拟机,可以将硬件和操作系统的平台细节屏蔽,使代理获得一个统一的界面。在这个基础上,代理可以在各个平台之间自由移动。 移动代理的特点 与传统的代理相比,移动代理有许多独特的特性,下面,将对这些特性作简单的介绍: ● 主机间动态迁移 在传统的构架中,代理是固定在特定的主机上的。工作时,需要将得到的数据发送给上一级处理器,或者其他代理。这样,需要一个比较复杂的通信过程。而移动代理则可以在运行期间直接进行主机间的迁移,就是说:可以从一个场地采集所需要的数据并处理之后,不终止进程而直接迁移到另一台主机上继续运行,保留了原来进程的数据段和堆栈。这样,极大简化了数据的处理过程,从而使数据的可操纵性和全局性有了根本的改变。这个根本特性导致移动代理具有下面另外一些与众不同的特点。 ● 智能性 由于移动代理可以自由地在主机之间进行迁移,使得代理的运行场地不再局限在某一个特定位置,从而比较容易获得全面和有针对性的数据。在这些数据的基础上,代理可以充分利用现有的人工智能和统计技术,做出更加及时和准确的判断。这种特性使得移动代理与传统代理相比,可以更有效地自主完成某一个特定的任务。 ● 平台无关性 多数移动代理采用与平台无关的语言,这样的程序可以跨平台运行。由于主流的平台无关语言(例如Java)在各种操作系统上都有其相应的实现,所以选用这些语言的移动代理可以很容易地完成跨平台的连接。另外,一般的移动代理体系都建立了与移动代理相配套的平台无关的通信协议。通过这些协议,代理之间无须建立直接的通信连接,而是利用虚拟机提供相应的消息服务,简化消息传递的操作。在这个基础上,可以更容易地开发异构平台上的应用系统。 ● 分布的灵活性 移动代理运行在整个分布式系统中,而不是固定在某一个特定的位置。这样,一旦需要,它可以将自己或者所需的其他移动代理直接发送到所需的主机现场,进行本地操作。这样,提高了操作的灵活性,同时也消除了传统代理间通信时对复杂通信协议的依赖性。 ● 低网络数据流量 由于结构上的特殊性,移动代理可以实时对所采集到的数据进行过滤,然后将关键数据提出,而无需象传统的代理体系那样,将各个主机的所有数据都汇集到一个中央服务器中,由这个服务器进行综合处理,然后再向相关的代理转发。这样,可以明显减少经过网络上的数据流量,提高网络的总体可用性。 ● 多代理合作 多代理合作是移动代理的一个重要特性。也就是说,通过虚拟机系统的通信机制,可以实现多个代理之间的合作。这种合作有多种模式。相同的代理之间互相协作,可以防止系统和代理失效。一旦有代理失效,其他代理可以采取措施,通过承担起失效代理的任务或者启动新的代理的办法来进行失效弥补。另外,异种代理之间也可以进行互补性合作,多个不同功能的代理协作完成共同目标。这样,有利于将总体功能模块化,减少单个代理所完成的功能,从而降低代码的复杂度,缩短调试过程。利用这个特性,可以进一步增强代理的可靠性。 移动代理的实例 由于移动代理必须保证能够跨平台使用,所以一般来说每一种实现都需要基于某一种特定的平台无关语言。目前国际上比较流行的语言有很多,包括Java、Tcl以及Python等。在每个平台之上,都有一些移动代理的实现。其中,Java语言的平台无关性在各个平台上实现得最好,而且其公共接口CORBA也得到了广泛的承认和支持。另外,在Java语言中已经直接集成了对象串行化的功能和RMI接口,为移动代理的实现提供了强大的支持。目前的移动代理中,有相当大的一部分是基于Java语言实现的。 基于移动代理的网络入侵检测系统模型 上节所述移动代理的特性表明,移动代理适合作大规模信息搜集和动态处理,特别是在入侵检测系统的信息采集和处理中采用移动代理既能充分发挥移动代理的特长,又能大大提高入侵检测系统的性能和整体功能。目前国内外利用移动代理进行入侵检测方面的研究还不多。图2给出基于移动代理的网络入侵检测系统的框架模型。该模型主要有四个部分组成: ● 数据采集子系统 该子系统主要负责从受监控的主机上采集有关主机的网络连接数据。 ● 数据管理子系统 本子系统的主要功能是保存和维护所有采集得到的数据,处理用户提交的数据库查询和更新请求。 ● 实时监控子系统 该子系统可以对各个受控主机进行实时监控,并对出现的问题实时报警。由于报警的实时性对系统资源要求很高,所以本模型中实时监控的算法设计一定要高效简明。 ● 离线分析子系统 该子系统主要通过WWW实现对各种历史数据和警报的查询和分析。由于此时数据已经保存在数据库中,所以可以利用各种复杂的算法对系统数据进行分析。在这里可做一些针对警报和日志的历史数据的查询和统计分析。移动代理还可进一步应用到监控机上。在模型中可增设安全总控制机,并通过移动代理对各监控机进行管理,这样可进一步提高入侵检测系统的性能。 结论 移动代理是一种比较新的技术,在大规模、分布式、跨平台的应用中,移动代理拥有独特的优势。将移动代理技术应用到网络入侵检测系统中,可具有这样一些优点:能实现全局范围内的入侵检测功能,具有清晰的系统结构和良好的可扩展性;具有优良的可移植性能;对网络系统和主机资源的占用较低,减少了出现瓶颈的可能。 |








