关键词 分布式入侵检测;移动Agent;网络安全
随着信息技术的发展,计算机成为社会活动中的必不可少的工具,大量重要的信息存储在系统中,同时,连入网络中的计算机数量也在成倍增加,这些都使得信息安全问题日益严重。入侵检测已经成为网络安全的一个重要的研究领域。
入侵(Intrusion)是指系统的未经授权用户试图或已经窃取了系统的访问权限,以及系统的被授权用户超越或滥用了系统所授予的访问权限,而威胁或危害了网络系统资源的完整性、机密性或有效性的行为集合[1]。其中,完整性是指防止网络系统资源被非法删改或破坏;机密性是指防止网络系统内部信息的非法泄露;有效性是指网络资源可以被授权用户随时正常访问和程序资源能够按期望的方式正常地运行。入侵检测就是检测入侵活动,并采取对抗措施。入侵检测主要有两种:滥用检测和异常检测。
滥用检测(Misuse Detection)是假定所有入侵行为和手段(及其变种)都能够表达为一种模式或特征,那么所有已知的入侵方法都可以用匹配的方法发现。滥用检测的关键是如何表达入侵的模式,把真正的入侵和正常行为区分开来。滥用检测的优点是可以有针对性地建立高效的入侵检测系统,其主要缺陷是不能检测未知的入侵,也不能检测已知入侵的变种,因此可能发生漏报。
异常检测(Anomaly Detection)[2]是假定所有入侵行为都是与正常行为不同的。异常检测需要建立目标系统及其用户的正常活动模型,然后基于这个模型对系统和用户的实际活动进行审计,以判定用户的行为是否对系统构成威胁。常用的异常检测方法有:专家系统、神经网络、机器学习、和人工免疫等。异常检测的关键问题是:① 特征量的选择。异常检测首先是要建立系统或用户的“正常”行为特征轮廓,这就要求在建立正常模型时,选取的特征量既要能准确地体现系统或用户的行为特征,又能使模型最优化,即以最少的特征量就能涵盖系统或用户的行为特征。 ②参考阈值的选定。因为在实际的网络环境下,入侵行为和异常行为往往不是一对一的等价关系,这样的情况是经常会有的:某一行为是异常行为,而它并不是入侵行为。同样存在某一行为是入侵行为,而它却并不是异常行为的情况。这样就会导致检测结果的虚警和漏警的产生。由于异常检测是先建立正常的特征轮廓作为比较的参考基准,这个参考基准即参考阈值的选定是非常关键的,阈值定的过大,那漏警率会很高;阈值定的过小,则虚警率就会提高。合适的参考阈值的选定是影响这一检测方法准确率的至关重要的因素。
入侵检测系统(Intusion Detection System,IDS)可以定义为识别针对计算机或网络资源的恶意企图和行为并对此做出反映的系统。
当前分布式系统的整体结构多为分级的多层次结构,见图1。
这是一种自顶向下的树状结构,由控制节点、数据聚合节点和数据搜集节点组成。位于树顶层的是控制节点,负责控制整个系统以及提供接口与外界通信;处在中间层的是数据聚合节点,它接受来自上层的命令后对下层进行控制,分析来自下层的数据流并进行缩减后递交到上层;而底层的叶节点负责数据搜集功能,它既可以是网络中的某台主机,也可以是网络中的某个数据采集器。
这种系统架构的优点是显而易见的:它能很好的处理基于滥用和基于异常的入侵检测模型,从而保护网络的安全;并且能适应网络通信大小的需要,很方便地随时进行扩充和缩减从而达到它所监控的网络环境的最优化。
但是正因为它的分层结构也导致了它自身的不安全性。表现在两个方面:
(1)在这种系统中,网络中有大量的数据传送将造成网络拥塞。
(2)由于分层结构使得IDS极易受到攻击。攻击者通过攻击内部节点有可能切断某一控制分支,甚至破坏整个IDS。
图1 层次架构的分布式入侵检测系统模型
移动Agent是一种软件对象,它能携带执行代码、数据和运行状态,在复杂的网络中自治的、有目的迁移,并能响应外部事件,在迁移过程中能保持状态的一致性。移动Agent就是一个能在异构网络中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的程序。
移动Agent技术是分布式技术和Agent技术相结合的产物,它除了具有智能Agent 的最基本特性:自主能力、社交能力、适应能力和一致主动性,还具有移动能力、可靠性和安全性。移动Agent不同于基于过程的RPC,也不同于面向对象的对象引用,其独特的对象传递思想和卓越的特性给分布式计算乃至开发系统带来了巨大的革新。移动Agent技术在实际中得到了广泛的应用,主要应用于
电子商务、分布式信息检索、无线通信服务、入侵检测和网络管理等方面。本文仅讨论移动Agent技术在网络入侵检测方面的应用。
该系统模型由如下3部分组成:(1)入侵检测处理部件(Intrusion Detection Processor,IDP);(2) 移动Agent 平台( Mobile Agent Platform,MAP);(3) 网络溴探器(Sniffer)。系统模型如图2所示:
图2 移动Agent入侵检测系统结构图
入侵检测处理部件(Intrusion Detection Processor,IDP):该部件是系统的基础,它被安装在一个关键的节点上,主要负责网络监控、中心入侵检测、Agent数据处理。网络中的审计数据由移动Agent送往中央处理部件进行包的解码和处理工作,IDP负责监控此Agent在网络中的移动,并且当发现异常活动时引导Agent定位关键节点,当检测到有问题包时,还负责发出报警信号。为了保证与移动Agent合适的交互作用,IDP需要与移动Agent平台交换数据和信息。该部件有3个主要的功能:包检测(packet sensing),包记载(packet logging),入侵检测。IDP提供的入侵检测服务主要有以下几种:
a. 监控网络流;
b. 集成由单个移动Agent发送来的相关数据,实现多点检测,处理来自网络内部的分布式攻击;
c. 通过扫描包来监控网络内部的连接;
d. 搜集在某时间窗口内攻击者行为的证据;
移动Agent 平台( Mobile Agent Platform,MAP):MAP可以建立、解释、执行、传输、和终止Agents。MAP主要负责接受来自IDP的请求,产生移动Agent,并且将它们发送到网络中去执行特定的任务(例如,开始监控,向IDP回送搜集到的数据等等)。
网络溴探器(Sniffer):嗅探器是网络黑客(Cracker)经常采用的、有效的工具之一。所谓嗅探器,是指在运行以太网协议、TCP/1P协议、IPX协议或者其他协议的网络上,可以攫取网络信息流的软件或硬件。嗅探器不同于一般的键捕获工具,后者只能捕获当地终端控制台上的按键内容,而嗅探器所“嗅”到的是动态的以信息包形式(如IP数据包或者以太网包)封装的信息流.其中可能携带了重要数据或敏感信息。嗅探器可以捕获这些信息包并存档,利用相应工具可以作进一步分析。
IDP、MAP、Sniffer之间的关系: 系统初启时,IDP启动自己的Sniffer并且向MAP发送一个‘START’请求。MAP接到来自IDP的请求后,建立Agent并将它们发往网络。此时,若一个Agent在行程中向IDP发送一个报告,引起一个报警,IDP将向该Agent发送一个消息使它再次激活Sniffer,并且试图搜集较多的有关当前攻击的证据用于研究攻击行为。 IDP将提示MAP建立一个新的Agent用于接管前Agent的任务,这样一来,网络中将有较多的活动Sniffers,以较快的速度响应报警。
系统中的Agent组成及功能:
在系统中,依据功能的不同我们将Agent分为以下两大类六种Agent[3][4]:
1)静态Agent
· 管理Agent (Manager Agent) 它的主要任务是根据需要分别动态地将配置Agent、巡逻Agent、派遣Agent及防御Agent以移动Agent的形式发送到服务器、工作站、网关、用户PC机以及座落在网络边界对网络链路流量进行过滤的侦听计算机上以便对整个网络的入侵进行检测、告警和防御。
·主机监控Agent(Host Monitor Agent,HMA) 网络中每一台受监控的主机上都安装有一个HMA,负责与其它Agent合作完成局部检测。当某受控主机上的入侵可以确定时,该主机上的HMA 直接向管理Agent报告,否则向管理Agent发送求助信息同时记下可疑活动。当管理Agent收到求助请求后,它将派遣一个Agent到网络上其它节点巡视,搜集相关信息,确定是否不同主机上的可疑活动组合起来构成一个分布式入侵。如果检测到一个分布式入侵,管理Agent将发送一个响应Agent做出智能响应。
· 配置Agent(Configuration Agent) 每当主机上的一个用户请求连接时,该主机上的配置Agent即开始执行。它的功能就是提供用户接口以及其它移动Agent在本主机上执行的一些配置。
2)移动Agent(Mobile Agent)
·巡逻Agent(Patrol Agent) 它在网络中所有主机上巡逻,在巡逻到的主机上搜集连接到该主机上的用户信息或流量数据,并检测可疑的用户行为。当发现可疑行为时,它就向管理Agent发送求助信息。
·派遣Agent(Dispatch Agent) 一组含有能够鉴别某种类型入侵的智能Agent,它们由管理Agent派遣到有可疑行为的主机上,通过对比、协商来共同确定可疑行为是否为入侵,并将结果报告给管理Agent。
·响应Agent(Response Agent) 当出现入侵时,由管理Agent将其发送到被入侵主机上以取消非法用户连接和阻塞非法用户帐号的形式来防御入侵。
将移动Agent技术应用于入侵检测可以带来诸多的优点[4][5]:减少网络负载、克服网络拥塞、自治执行、与平台无关、动态自适应、静态自适应、可扩展等等。但是Agent和Agent平台的引入也带来了许多问题:
·安全性 一方面,外来的恶意移动Agent试图获取信息的访问权,延缓或终止移动Agent运行环境的工作,篡改或销毁信息资源;另一方面,恶意移动Agent环境试图通过篡改信息或修改移动Agent的编码来扰乱、干涉或终止移动Agent的正常工作;恶意移动Agent试图在与其它移动Agent协商中提供假信息或监视和干涉其他移动Agent的正常活动。
这些安全威胁在很大程度上都不同于一般的分布式系统和传统的入侵检测系统所面临的安全威胁,因为它们很难被准确定位(上述第二种情况除外),要预防和消除此类安全威胁存在不少困难,主要原因有两个:移动Agent有时需要在安全区域外移动和独立工作,但在一个未知运行环境中运行很难保证此移动Agent的安全。其次,当移动Agent从一个运行环境中移动到另一个运行环境中执行时,接受运行环境无法判断此移动Agent是否已经被篡改,而移动Agent也无法判断此运行环境是否存在恶意的攻击。
·代码大小 入侵检测系统是一个复杂的软件系统,实现其功能的Agent代码会很大,在网络中传输Agent会消耗系统时间。
·性能 为保证在不同平台之间容易移植,Agent常常使用脚本语言或解释性语言编写代码。这种执行模式相比较使用非脚本语言和解释性语言(如java语言和C++语言)性能较低。特别地,当一个入侵检测系统必须处理大量具有较强实时要求的数据时,使用移动Agent会降低系统性能。
4 入侵检测未来发展趋势
移动Agent技术可以有效地提高分布式入侵检测系统的灵活性和合作检测能力。它的主要特点是:代替传统的系统中将大量的数据移向处理部件,使用移动Agent只需将代码(Agent)移向要处理的数据,从而避免了在网络中传输大量的数据造成网络拥塞。特别地,由于移动性,使得系统可以借助相关数据分析合作检测找到分布式入侵。
随着网络的不断发展,入侵检测系统作为一种网络安全系统的重要组成部分,仍然将发挥越来越重要的作用。预测它的发展趋势如下:
(1)检测模型走向自适应。自适应模型结合了自学习系统的优点和特征系统的检测效率,这种混合模型已经被学术界公认为发展特点;
(2)大规模分布式入侵检测技术研究。其中的关键技术为检测信息的协同处理与入侵攻击的全局信息提取;
(3)面向应用的入侵检测。由于应用程序解释的各种不同类型的数据(如加密过的数据),它们的语义只有在应用层才能理解,若想能够分析并理解这些数据,入侵检测系统必须面向应用层。现在已经有了如何进行应用程序级入侵检测的初步分析。可以预见,应用层的入侵检测将成为新一代的入侵检测系统的特色。这样,入侵检测系统就成为一个以主机为中心,以网络为扩展面,以应用程序为高度的立体式的、全面的复杂系统;
(4)入侵检测系统应该标准化,增强入侵检测系统的互操作性。目前,入侵检测系统的研究基本上没有标准化,入侵检测系统之间与其它安全产品之间的互操作性很差。多个系统的相互配合有利于应对攻击规模的扩大化,也有助于检测一些新型的入侵攻击方式;
(5)安全性需要增强。作为安全防护体系中的重要组成部分,入侵检测系统必须加强本身的安全性。
[1] Bace R G. Intrusion Detection. Macmillan Technical Publishing,U.S.A.,1999
[2] Lee W. A Data Mining Framework for Constructing Features and Models for Intrusion Detection Systems:[ PhD thesis].Columbia University,1999
[3]杨向荣等. 基于数据挖掘的智能化入侵检测系统[J].计算机工程,2001,27(9),17-18
[4] W W.Jansen and T.Karygiannis. Mobile agents and security. Special Publication 800-19,NIST,September 1999
[5] Wayne Jansen,Peter Mell,Tom Karygiannis,Don Marks. Applying Mobile Agents to Intrusion Detection and Response. NIST Interim Report(IR)-6416.ACM October 1999