基于移动代理入侵检测模型的研究
2012-08-06修长虹郑小松梁建坤
修长虹 郑小松 梁建坤
沈阳药科大学网络中心 辽宁 110016
0 前言
近年来随着计算机应用技术如Internet技术的迅速发展,一方面基于网络的计算机系统在现代社会中的地位越来越重要,越来越多的用户可以足不出户地访问到全球网络系统丰富的信息资源。网络信息技术的应用也日益的普及和推广,各种商务、金融机构以及国家政府机构在电子商务热潮中纷纷连入Internet。另一方面伴随着网络上不断增强的信息共享和业务处理,这些关键的业务越来越多的成为黑客的攻击目标,网络的安全问题也显得越来越突出,而Internet所具有的开放性、国际性和自由性在增加应用自由度的同时,对安全也提出了更高的要求。
网络安全的一个主要威胁是来自于非法用户或黑客通过网络信息系统进行的入侵。而传统的安全方法是采用尽可能多的禁止策略对入侵进行防御,但是这种策略无法防止隐信道的产生以及系统所认定的授权用户的非法操作,对于来自内部非法操作、口令和密码的泄露、软件缺陷以及拒绝服务型攻击(DoS)则更是无能为力。近年来流行的数据包过滤、应用层网关及虚拟网技术的防火墙已经能够防止许多安全漏洞,如常见的协议实现漏洞、源路由及地址仿冒等多种攻击手段,并能够提供安全的数据通道。但是它不能对付层出不穷的应用层后门、应用设计缺陷和通过加密通道的攻击,而为了解决用户对系统信息使用的方便性和严格控制之间的平衡问题也使得系统不可能完全安全。这样,传统的防范入侵的手段随着攻击者对网络系统了解的日趋深入,攻击工具和手法的日趋复杂多样,这种被动的防范方法已经显得力不从心,所以需要一种更加仔细的、能够及时发现并报告系统中未授权或异常现象的监控系统来改善和保护我们的计算机网络系统安全。入侵检测系统(IDS)便在此需求下应运而生,成为保护计算机系统安全的另一道安全防线。
网络入侵主要分为两大类:来自局域网(LAN)外部入侵和来自局域网内部的入侵。然而,不管是哪一种入侵方式,入侵者很少直接从它们自己的主机上对目标主机进行攻击。这样做的原因很明确,隐藏自己的真实身份。入侵者一般首先攻击防范较薄弱的主机,然后逐步接近防范较强的主机,最终到达要攻击的目标机器。一般情况下不仅是目标主机上的管理员不会注意到入侵,中间主机的管理员也不会检测到入侵。即使管理员检测到入侵,如果入侵者及时断开网络连接,那么系统管理员也无法追踪入侵者最初是从哪里发起攻击的。
本文所设计的模型是一个分布式实时入侵检测系统,系统使用了移动代理。数据包被分发到安装在网络上的各种类型的代理上,不同的代理执行不同的任务,控制、检测、策略、阻塞。当一个入侵被检测到并且策略机制判定阻塞后,可疑的数据包将在到达目的主机之前被丢弃。
检测系统主要部件有:代理系统、存储系统、分析系统、响应系统、控制系统。代理系统以各种方法收集信息,包括分析日志、监视用户行为、分析系统调用、分析该主机的网络通信等。它们也具有数据分析功能,对于已知的攻击,在这些部件中所用模式匹配的方法来检测可以大大提高系统的处理速度,也可以减少分析部件的工作量及系统网络传输的影响。
存储系统的作用是用来存储事件产生器捕获的原始数据、分析结果等重要数据。储存的原始数据在对发现入侵者进行法律制裁时提供确凿的证据。存储系统也是不同部件之间数据处理的共享数据库,为系统不同部件提供各自感兴趣的数据。因此,存储系统应该提供灵活的数据维护、处理和查询服务,同时也是一个安全的日志系统。
分析系统是对事件发生器捕获的原始信息、其它入侵检测系统提供的可疑信息进行统一分析和处理的系统。分析系统注重于高层次的分析方法,如基于统计的分析方法、基于神经网络的分析方法等。同时负责对分布式攻击进行检测。各种分析方法都有各自的优势和不足,因此,系统中分析方法应该是可以动态更换,并且多种算法可以并存的。
响应系统是对确认的入侵行为采取相应措施的子系统。响应包括消极的措施,如给管理员发电子邮件、消息、传呼等。也可以采取保护性措施,如切断入侵者的TCP连接、修改路由器的访问控制策略等。还可以采取主动的反击策略。
控制系统是整个入侵检测系统的中心,也是IDS提供给用户的管理界面,用户通过系统控制台可以对整个子系统组件、安全通信、报表生成、负载均衡等进行控制和管理。
代理系统是入侵检测系统代理的总体。IDA使用的移动代理能够跟踪入侵者,并且确定是否已经发生了入侵。移动代理只收集整个入侵路由过程中与入侵有关的信息。这样大大提高了检测效率。IDA减少了系统的负载,并且能够检测到一些新的未知形式的攻击。
在分布式系统的范畴中,代理是指分布式系统中的节点实体,一般用来进行信息收集和节点控制等工作。由于分布式系统拓扑结构的特点,代理往往处于系统网络结构的末端,节点的信息非常有限和单一,所以这些代理往往只能完成相对简单的任务,例如简单数据采集和转发等。模型中有五种类型的代理。它们是:网关代理,控制代理,检测代理,策略代理和主机代理。在这五种代理中,只有控制代理是可移动的,其它类型的代理都是静态的。多代理合作是移动代理的一个重要特性。也就是说,通过虚拟机系统的通信机制,可以实现多个代理之间的合作。相同的代理之间互相协作,可以防止系统和代理失效。异种代理之间也可以进行互补性合作,多个不同功能的代理协作完成共同目标。
1 代理系统
基于代理的分布式入侵检测系统,它并不存在检测中心,而是通过相关的多代理之间的协作来完成最终的入侵检测,从而避免了检测中心的瓶颈现象,因而适合于大型的网络的入侵检测。在多代理系统中,代理是自主的,多个代理的知识、愿望、意图和行为等往往各不相同,对多个代理的共同工作进行协调,是多代理系统的问题解决能力和效率得以保障的必要条件。多代理系统中的协调是指多个代理为了以一致、和谐的方式工作而进行交互的进程,避免代理之间的死锁。
1.1 移动代理
移动代理是一种特殊的代理。一般情况下,它需要运行在特定的虚拟机环境中。它可以自由地在主机之间进行迁移,使得代理不再局限在某一个特定位置。在运行期间可以直接进行主机间的迁移,就是说:可以从一个场地采集所需要的数据并处理之后,不终止进程而直接迁移到另一台主机上继续运行,保留了原来进程的数据段和堆栈。这样,极大简化了数据的处理过程。
移动代理系统具有跨平台的特性,其工作平台可以混合使用不同厂家的系统。通过在各个操作系统中运行移动代理的虚拟机,可以将硬件和操作系统的平台细节屏蔽,使代理获得一个统一的界面。在这个基础上,代理可以在各个平台之间自由移动,通过将控制代理尽可能靠近资源,甚至在资源上运行,使得业务控制和管理软件的实现更分布化。增加软件的灵活性、重用性和效率。
由于结构上的特殊性,移动代理可以实时对所采集到的数据进行过滤,然后将关键数据提出,而无需像传统的代理体系那样,将各个主机的所有数据都汇集到一个中央服务器中,由这个服务器进行综合处理,然后再向相关的代理转发。这样,可以明显减少经过网络上的数据流量,提高网络的总体可用性。
1.2 网关代理
网关代理是放置在内部网和外部网之间的代理。它负责抓取外部网络上的数据包,并将它们转发给内部网络上的一个控制代理进行入侵检测。
图1 网络系统结构图
将特定数据包发送到哪个控制代理依据控制代理所在主机的负载情况,当控制代理所在主机负载太大时,控制代理将通知网关代理和主机代理不要再发送任何数据包让它检测。这样我们能保证入侵检测不会妨碍主机的正常工作。一般数据包发送给目标主机上的控制代理,以便减少不必要的网络流量和时间耽搁。为了提高效率,属于同一个会话的数据包发送给同一个控制代理。为了检测分布式入侵,几个控制代理相互联系形成了一个组,以便交换信息。
1.3 控制代理
控制代理安装在内部网络上。它接受主机代理发出的信息或网关代理送来的信息数据包。然后发送数据包到检测代理进行入侵检测。最后,它把数据包和检测代理的检测结果转发给目的主机上的主机代理或网关代理。
控制代理是一个移动代理。当主机超载时,控制代理将移到其他主机上继续检测工作。同时,它将通知网关代理和主机代理不要再发送任何新的会话数据包让它检测。然后,它将继续检测先前检测着会话的数据包。当先前的主机不再超载时,他将移回来,并且通知网关代理和主机代理任务重新开始。
1.4 检测代理
检测代理负责真正的入侵检测工作。每个控制代理控制许多检测代理。每个检测代理仅仅负责检测出某种类型的入侵。这样,当出现新的攻击类型或者发明了新的检测方法时,检测代理更易于更新。检测代理从控制代理那里得到数据包,从一个组的主控制代理那里得到信息。然后,检测代理检测数据包是否入侵并估计误警率。在做出判断之后,它向控制代理做出汇报。
1.5 主机代理
主机代理负责从控制代理那里接收到来的数据包和向控制代理发送数据包。当他从控制代理那里接收到数据包和检测结果后,它查阅策略代理以决定它将采取什么措施。如果策略代理判定为不阻塞,这个数据包将被传送给主机上的相应进程。当某个进程需要向外发送数据包时,不论发往外部主机还是内部主机,主机代理都将他们重新定向给控制代理而不是直接向外传送。发送数据包给哪个控制代理的标准和网关代理一样。
1.6 策略代理
策略代理负责当一个入侵被发现时,主机代理或网关代理应当采取什么样的措施。可能的措施包括:丢弃包、允许数据包通过通知系统管理员或者不通知系统管理员但是将相关信息写到日志上。
不应该阻塞所有可疑入侵的数据包。因为在所有入侵检测系统中误警率一直都很高,阻塞所有可疑的数据包会使许多非入侵的数据包被丢弃。因此,应该仅仅阻塞或丢弃那些几乎确定对主机有危害的数据包。策略代理的作用就是做出决定,主机代理应该对可疑的数据包采取什么样的行动。
1.7 组
为了检测分布式入侵,几个控制代理形成一个组。在一个组之内,控制代理能够共享信息以便检测分布式入侵。例如,对整个网络进行端口扫描等入侵活动检测。
一个组在控制代理中形成,这些控制代理检测具有“相同的头”的数据包。也就是说,这些数据包有相同的目的地址,相同的目的端口,相同的源地址或者相同的源端口。
因为一个控制代理可能被涉及到检测不同地址、端口的数据包,所以一个控制代理可以在多个组中。在一个组中,控制代理选出一个主控制代理,所有控制代理必须向主控制代理汇报。这样,主控制代理处理收到数据然后把结果发送给组内的成员(控制代理)。
如果网关代理或主机代理随机的用一个控制代理进行入侵检测,许多的控制代理将涉及到检测一个特定的地址或端口,这样,组将变得非常巨大。因为主控制代理需要同大量的控制代理进行通信。就会导致效率下降。为了提高效率,如果可能的话,网关代理应该发送数据包给那些已经在组内的控制代理。
1.8 代理的基本程序结构
各种代理包含不同的代理程序模块类型,由它们相互协作,共同完成各代理不同的功能。
图2 代理程序类层次结构图
Entity类是所有主要代理程序类的基础类型,它定义了所有代理实体的共同特征,实现了主要的数据抽象和功能抽象。很多时候会有多个代理希望从同一个数据源中获取数据,此时如果每个代理各行其是,则会造成运行效率的损失,所以第一个子程序类是Filter类,它定义了过滤器的主要特征,代理通过注册向过滤器申请数据,过滤器在有数据时通知代理。第二个子程序类是Agent,它定义了各代理的主要特征及它们各自的功能特点。第三个子程序类Controller Entity,实现了系统中控制实体的基本功能,即通过它控制其它实体。由它派生出Monitor子程序和Transceiver子程序,Monitor子程序模块和Transceiver子程序分别实现了检测器和收发器的功能。
在本文的设计中,如果入侵事件被发现,并且策略代理判断为阻塞的话,这些可疑的数据包在到达目的主机的处理进程之前将被丢弃,较好的实现了实时性。
2 存储系统
存储系统把系统检测到的事件记录下来,以便于以后的分析。构造专用的存储系统可以提高反应速度,但那是一件很昂贵的事情。所以我们选择现有的数据库系统来建立存储系统。现有的数据库系统都支持SQL查询,它对搜索的封装使得分析系统可以使用通用的接口。根据入侵检测系统的规模,存储系统也有很大的区别,它可能是一个单一的数据文件存储系统,也可能是一个数据库系统,对于大规模的入侵检测系统来说也有可能配置一个数据仓库作为其存储系统。
3 控制系统
控制系统是控制中心与控制台的通信接口。它接受并解析来自控制台的请求,向控制单元和数据库管理模块发送相应的请求,在控制单元的控制下,接受从数据库管理模块传回的数据,经处理后传回控制台。控制台是分布式检测系统与用户交互界面,易于操作的控制台是系统必不可少的部分。如果没有良好的人机交互界面,系统管理员很难和IDS系统交流,IDS很难发挥其功能。控制台的设计应面向用户,有完备的功能和图形化的操作界面。它包括安全事件管理、事件报表管理、监测器管理和虚报警管理。
分布式入侵检测系统一般指的是部署于大规模网络环境下的入侵检测系统,任务是用来监视整个网络环境中的安全状态,包括网络设施本身和其中包括的主机系统。它的应用增大了网络和系统安全的保护纵深。本论文提出的分布式系统模型,以及实时性入侵检测系统框架,不仅为我们今后在入侵检测领域中的研究工作提供了可靠的理论、技术依据,而且具有明显的工程应用价值。由于时间的局限,对网络环境下的入侵检测技术,以及集成多种安全技术的网络安全防御体系方面的研究,还需要进一步的研究。
[1] Stephen Northcutt.网络入侵检测分析员手册.人民邮电出版社.2000.
[2] Rebecca Northcutt,Mank Cooper,Matt Fearnow,Karent Frede rick.入侵特征与分析.中国电力出版社.2002.
[3] Rebecca Gurley Brace.入侵检测原理.人民邮电出版社.2001.
[4] Paul E.Proctor.入侵检测实用手册.中国电力出版社.2002.
[5] 唐国军、李建华.入侵检测技术.清华大学出版社.2004.
[6] 精英科技.系统安全与黑客防范手册.中国电力出版社.2002.
[7] Eric Cole.黑客---攻击透析与防范.电子工业出版社.2002.
[8] 刘宝旭,许榕生.黑客防范技术揭秘.机械工业出版社.2002.