王浩 武凌 司凤山 魏苏林
(安徽财经大学管理科学与工程学院,安徽 蚌埠 233030)
随着网络技术的迅猛发展,网络规模不断扩大,给人们生活带来了许多方便,但网络安全问题日渐凸显。面对攻击分布化和复杂化的发展趋势,一些传统的安全技术通常采用被动防御方式,已远远不能保障目前网络的安全。
为了弥补传统安全技术存在的缺陷,就必须研究一种全新的安全技术,这种安全技术将所有安全威胁都认为是“入侵行为”。“入侵行为”可理解为:通过对系统漏洞扫描,从而获取系统控制权,危害计算机系统的行为。通过这种新技术在计算机网络的各关键节点进行扫描分析,从中判断网络中是否有入侵行为发生,这就是“入侵检测系统”。
传统的入侵检测设备是典型的监听设备,它没有协同的设备也没有数据需要彼此共享,它只需监听相应端口,将收集到的报文根据预先设定的阈值与设备中的入侵检测知识库进行比对,将匹配程度较高的报文即认为是攻击行为。此时,入侵检测系统会报警并根据预先设置的防御手段进行处理。所以传统的入侵检测系统是一直处于被动的防御状态,只对知识库中存在的入侵特征有防御能力,而对新出现的入侵行为却无能为力,漏报率和误报率比较高,又因现在入侵者的攻击多为快速和分布式的攻击,这些都严重影响了网络防护效果。那么入侵检测系统中知识库的及时更新、降低漏报率和误报率、分布式的防御就成为需要迫切解决的问题。
移动代理(Mobile Agent,MA)是能够自行决定在网络的各个节点之间移动,代表其他实体进行工作的一种软件实体。它可根据实际情况立即中止当前的运行,迁移到另一设备上继续运行,并将运行结果返回给之前设备。相比较普通分布式计算,MA更能够靠近数据源来执行,从而节省网络带宽、负载平衡,更快地执行任务,进而提高分布式系统的效率。
(1)自主性:一个Agent能在没有与环境的相互作用下自主执行任务,每个Agent都是可独立运行的程序。
(2)响应性:Agent能对来自环境的影响或环境变化做出响应,并根据情况在需要时主动移动到目标位置。
(3)移动性:Agent作为一个实体,具有移动能力,它可以移动到所在网络中的任一主机执行。
(4)智能性:Agent的智能由内部知识库、学习或自适应能力及基于知识库的内部推理机制,自适应复杂的环境。
(5)合作性:Agent之间可以彼此协同工作共同完成任务。
(6)社会性:Agent的社会性包括在社会活动中对安全性、风险、信任、诚实等因素考虑。
在复杂的网络环境中,早期的入侵检测系统很难应付现在复杂的攻击手段,尤其是应对分布式入侵,防御系统很难免受攻击。而移动代理技术的特性恰恰可以弥补原有入侵检测系统动态迁移性差、自身安全性不足和占用过多网络带宽等问题。移动代理应用到入侵检测系统中的优势有以下五点[2]:
(1)降低网络负载:移动代理可以通过将任务移动到远端执行,暂时断开与源主机的网络连接,从而降低网络的流量,减轻网络的负载。
(2)提高系统健壮性:当某一主机断开连接或无法连接网络时也可以自治的进行检测。
(3)自适应能力:移动代理通过感知环境的变化,根据当前网络状态选择最优路由,做出诸如移动、克隆、回收的反应。
(4)可扩展性和动态配置:能够依据需求,在网络中动态地加入或删除移动代理,每个移动代理都是独立运行不会影响到整个系统。
本文研究的移动代理系统由Mobile Agent(MA)和Mobile Agent服务设施(MAE)两大部分组成。MA分为用户Agent(User Agent,UA)和服务A-gent(Server Agent,SA)。MAE 通过 Agent传输协议(Agent Transfer Protocol,ATP)实现 Agent在主机之间转移。代理通信语言(Agent Communication Language,ACL)可为MA提供相互通信和访问服务器的各项服务。
MA是一种能够自主移动的程序,除了具有A-gent的特性外,还具有移动性。下面提出移动代理系统结构如图1所示:
本文研究的分布式入侵检测系统模型(图2),克服了以往分布式入侵检测系统的缺陷。
移动代理管理控制模块(Core Control Agent,CCA)主要负责对系统运行状态的管理,是整个系统的监视者和管理者。移动代理的控制台负责整个网络中各个Agent实体的管理,包括Agent实体的产生、配置、分派、监视和撤销Agent,接收受检主机上移动代理传送的信息等功能。移动代理的控制台还包括人机交互界面,它负责向网络管理员提供系统的信息。同时,也是管理员与系统交互的平台,接受来自管理员的命令。
图1 Mobile Agent系统
图2 分布式入侵检测系统模型
移动代理管理控制模块主要包括:响应子模块、管理控制子模块、调度子模块、通信子模块及用户界面子模块等。
系统主要功能包括数据收集Agent、探测Agent、入侵检测Agent,响应Agent、状态监控Agent等。
数据收集Agent是入侵检测系统的基础部件,它用来收集所有信息源的数据提供给系统用作分析;探测Agent负责网络中各主机上运行的Agent信息的收集并做出适当的处理;入侵检测Agent是系统中负责对入侵行为的检测模块,包括基于主机的静止入侵检测和网络的入侵检测代理,当入侵检测Agent发现入侵行为与规则相匹配,则向探测代理报告;响应Agent是用来接受控制Agent发出的任务。一旦确定了攻击行为,控制中心即发出响应A-gent用以拒绝操作、删除病毒、修复文件或断开网络等操作;监控Agent具有控制和数据处理的能力,负责对受检测主机上的Agent远程管理、调度和对各主机状态的监管,通常设置在多个主机上,每个监控Agent都会通过网络将的报告发送给控制台。
Aglets开发平台是由IBM日本公司在90年代末开发的移动Agent运行平台,平台采用Java语言开发。Java语言具有面向对象、跨平台等特性,使开发出的Aglet具有先天的跨平台特性,同时保证了该系统具有良好的健壮性。Aglet是目前商业领域中最为成功的移动Agent开发平台[3-4]。Aglet的系统框架如图3所示。
图3 Aglet的系统框架图
从图中可以看出Aglet的执行分为若干个阶段,一般执行过程可分为4个层次:Aglet应用程序接口层;Aglet运行层(Aglet runtime);ATCI(Agent Transport and Communication Interface)层以及网络通信层。Aglet应用程序接口是Aglet与所在网络环境的标准接口,定义了MA的基本功能。如果一个Aglet想把自己移动到其他地方时,向Aglet runtime发出请求;然后Aglet runtime层将Aglet的代码与状态信息转换为字节数组;如果Aglet runtime层向ATCI层请求成功,系统将会将字节数组传送至ATCI层,ATCI层包含 ATP(Agent Transfer Protocol)等接口,ATP用以封装Aglet runtime层传送来的字节流,并移动到远端主机。远端主机使用ATP接口接收到字节流后,利用Aglet Runtime层将字节流反向读出即得到Aglet信息,此次Aglet已移动到远端主机上运行。
在本文研究的系统中,将基于主机的入侵检测和基于网络的入侵检测系统进行有机结合,针对不同的检测方法,可以生成不同的检测代理,在同一个节点中可以运行多个检测代理,它们共同负责该节点的主机和网络的安全,从而弥补了传统单一基于主机或网络的入侵检测系统固有缺陷,提高了入侵行为检测的检出率,降低了漏报率。
[1]Tan Xiang,Gu Yu-Qing;Bao,Chong-Ming.Method for Mobile Agent Data Protection[J].Journal of Software,2005,16(3):477-484.
[2]Yu Feng,Wang Qian.Research and Implementation of Flexible Workflow BasedonMobileAgentPlatform:Aglet.Source:Dongnan Daxue Xuebao(Ziran Kexue Ban)[J].Journal of Southeast University:Natural Science Edition,2003,33(2):172-176.
[3]Gupta P,McKeown N.Algorithms for Packet Classification[J].IEEE Network,2001,15(2):24-32.
[4]PODLENA J R,HENDTLASS T.An Accelerated Genetic Algorithm[J].Applied Intelligence,1998(8):103-111.