1 引 言
移动代理(Mobile Agent,MA)是指能在同构或者异构网络主机之间自主地进行迁移的有名字的程序。MA是Agent的一种,除了具有一般Agent的特性外,还具有移动性,可在一定控制机制下,携带自身状态,信息和代码等在网络中转移到另一个环境中去,并在该环境中恢复执行。MA应用于DIDS,可以实现主机间的动态迁移,从而改变传统的将数据传给程序的方式,改将程序传给数据。
入侵是指任何企图破坏资源的完整性、保密性和有效性的行为,也指违背系统安全策略的任何事件。入侵行为不仅仅指来自外部的攻击,同时也包括内部用户的未授权行为,有时内部人员滥用他们特权的攻击是系统安全的最大隐患。入侵检测是指通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和遭到攻击的迹象,同时作出响应。入侵检测系统(Intrusion Detection Sys-tem,IDS)是实现入侵检测功能的一系列的软件、硬件的组合,他是入侵检测的具体实现。
目前,入侵检测技术存在以下的问题:误报警率高;自适应性差;自动反应程度不高;智能化程度不高。另外,随着黑客入侵手段的提高,尤其是分布式攻击方法的出现,传统单一的、缺乏合作的入侵检测系统已经不能满足要求,分布协同的分布式入侵检测系统(Distributed Instrusion Detection System,DIDS)成了当今入侵检测领域的研究重点。
2 基于MA的DIDS模型的提出
本文提出的基于MA的DIDS借鉴了美国普度大学设计的AAFID系统原型。在DIDS中引入移动代理技术将大大减少系统的通信负载,并且能够检测到新的或未知形式的攻击。他使用MLSI(Mark Left by Suspected In-truder)来表示由可疑的入侵者留下的踪迹,并且通过观察可能与入侵有关的事件而不是所有用户活动来实现检测。如果发现了MLSI,那么将收集与MLSI有关的信息,分析这些信息并且决定是否发生了入侵。在许多传统的IDS中,每个目标系统都将他的系统日志传送给入侵检测服务器,由服务器分析整个系统日志,判断是否发生了入侵。这种方法在如今的客户/服务器(C/S)架构的网络环境下已经无法有效地工作了,因为在一个部署有IDS的大网络中网络通信量将是极大的,日常传输的系统日志的通信量也是非常惊人,但这些数据中绝大多数与入侵无关。因此,在大网络中,这类入侵检测系统的执行效率很低,浪费了大量的系统资源。而移动Agent将自动迁移,收集只与入侵有关的信息,这样就不再需要把系统日志传输给服务器,极大地提高了工作效率。系统结构如图1所示。
这种基于MA的DIDS模型可以分布在网络中任意数目的主机上,在一台主机上可以运行任意数目的功能Agent,功能Agent是相互独立运行的实体,他们的运行和删除不会影响其他Agent的运行,功能Agent负责IDS的数据采集和数据分析功能,把他们所发现的事件和相关的数据发送给收发器Agent。每台主机上只有一个收发器Agent在工作,收发器Agent管理本机上所有功能Agent的运行情况包括运行、停止和传递配置命令给功能Agent,并且负责将自身汇总的数据报告给一个或多个控制台Agent。每个控制台Agent管理着多个收发器Agent的运行,控制台Agent可以使用跟踪Agent来使多个收发器Agent协同工作完成分布式入侵检测任务,控制台Agent可以看到整个网络范围的数据,因此他可以进行高层次的相关性检查,进而检测到与多台主机相关的入侵。控制台Agent可以按照层次方式进行组织,即有些控制台Agent会向上一级的控制台Agent进行汇报或一个收发器Agent向多个控制台Agent汇报,这样可以提供数据冗余,降低单点故障出现的可能性。但无论层次如何划分,最终必须有一个控制台Agent与用户界面交互,提供信息给使用者(也就是系统的管理员)。
3 MA在DIDS中的应用及其关键技术
基于Agent的IDS可以将Agent植入到目标系统,数据的收集、检测以及入侵的响应都可以在目标系统中完成,不再需要把检测数据发到数据收集中心进行处理,改变传统的将数据传给程序的方式,改将程序传给数据,大大提高了入侵检测的实时性,而且避免了网络通信过载的问题,从而提高了系统的工作效率。
由于Agent是独立的功能实体,在一多代理系统中,单个的Agent能够增加到系统中去或从系统中删除,并且能够对某个Agent进行重新配置,而不会影响到系统的其他部分,从而可以通过添加新的Agent或添加新的检测规则来发现新的入侵行为,这就较好地解决了常规入侵检测系统的缺陷。虽然MA技术已经广泛用于DIDS的检测中,但仍然存在一些关键问题,需要得到更好的解决。不过相信随着移动代理技术的发展,这些问题会逐渐被克服。
3.1 实现语言及平台
移动代理系统对实现语言有多方面的要求。移动代理编程语言应具备4个基本要求:支持移动;支持异构性;高性能;安全性好。移动代理的实现可以采用编译型语言,移动代理被编译成本地代码。由于本地代码与具体的系统平台有关,因此当移动代理在不同系统平台之间移动时必须重新编译源代码。而且,本地代码可以直接访问本地系统资源,加大了安全控制的难度。如果采用解释型语言,移动代理被编译成与本地无关的代码,由解释器解释执行,不同平台上的解释器保证移动代理在不同系统平台上的执行。解释器在解释执行时,对访问系统资源的语句加以严格的控制,可实现语言级别的安全性。
从支持移动、支持异构性、执行效率和安全性等多面考虑,绝大多数的移动代理系统都采用解释型的Java语言,其采用标准的Java虚拟机和对象序列化机制。
3.2 安全问题
移动代理的安全问题是阻碍移动代理技术发展的最主要因素之一。移动代理本身移动性的不确定性可能会导致代理在网络中的泛滥,或是恶意主机对移动代理体本身的侵害。在Agent系统中,安全问题大致可分为3类:
(1)保护主机免受恶意Agent的破坏;
(2)保护Agent免受主机和其他Agent的破坏;
(3)Agent通信的安全性。
3.3 多点检测(Multi-point Detection)
多点检测在检测网络攻击时可起到重要的作用。网络中日渐猖狂的分布式攻击(如DDOS)就是以分散在互联网上的大量主机系统协同攻击目标主机的,所以MA可以在网关、主机、Modem及服务器等暴露给外界的网络实体上对攻击进行相关性分析,从而实现多点检测技术。
3.4 漫游代理(Roaming Agent)
漫游代理是指每个代理执行一种特定的测试在网络中随机漫游。当一个代理检测到有入侵可能时,要求在该处做更多相关测试(不是入侵检测的整套测试)。多个测试后,如果该可疑事件上升到一个门限值时,才产生报告。
3.5 代理的自治性
自治是移动代理从代理继承而来的天然特性,也是移动代理系统智能的主要体现。Agents本身提供了移动代理的自身生命周期控制,代理本身能够完全控制自己的行为,当移动代理被创建之后,能够实现自主的移动、销毁功能,甚至还可以创建新的移动代理。另外,本系统中的移动代理还具备以下几点自治性。
移动代理与环境的自适应 当移动代理到达不同目标节点时能够根据其内嵌代码与平台环境进行交互,从而执行与之对应的不同任务。
移动代理迁移路线的自治 系统中的移动代理的移动路线可以事先以数组形式设定,在移动过程不发生任何变化,移动代理依次取出数组中的位置信息元素进行移动。
移动代理的群体实现智能 当多个代理发现的一些信息返回检测管理器平台节点时,管理器可通过返回信息之间的信息关联进一步发现单个代理或单个目标节点无法检测的入侵行为。
3.6 多代理之间的协作
虽然Agents提供了同步与异步的消息机制,但是仍需要我们在此基础上设计针对实际应用的多代理协作机制。协作首先需要一定的知识表示,本系统中的学习主要涉及到学习移动代理到各个目标节点上针对网络数据包的学习,采用的是小环境遗传算法来产生基于免疫的网络数据包检测算法的检测数据集合。其他多代理之间的协作主要为模糊推理,包括多个代理协同判断发生在网络中多个节点的同一入侵事件。多代理的协作将极大提高系统的整体检测智能。
3.7 抗攻击体系结构
分布式IDS一般采用分层结构,分层体系存在明显的缺陷,攻击者如果攻击体系中的中间点或根节点,会导致系统大面积瘫痪。因此IDS可能的研究包括不存在单点失效问题、MA能够备份每个节点、在检测到可疑行为后可以重新部署MA。
4 结 语
由于移动代理在DIDS中应用的关键技术问题尚待更好的解决,因此移动代理技术应用到分布式入侵检测的性能还有待进一步开发,如移动代理本身的问题,如何建立一个优化的基于移动代理的企业模型和应用框架以及与防火墙、PKIX、安全电子交易(SET)等新的网络安全与电子商务技术相结合,来提供完整的网络安全保障,我们将在今后进行深入研究和探讨。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』