moqingsong
论坛版主
论坛版主
  • 注册日期2002-04-07
  • 最后登录2011-02-03
  • 粉丝0
  • 关注0
  • 积分74分
  • 威望71点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
阅读:3611回复:10

新型入侵监测系统(IDS:Intrusion Detection System)的研究(转)

楼主#
更多 发布于:2002-07-05 11:25
新型入侵监测系统(IDS:Intrusion Detection System)的研究
【摘要】

本文设计了一种新型的实时入侵检测系统(A Real-Time IDS)。与以往入侵检测系统相比,该系统采用新的设计思想,克服了以往系统的一些缺点。它具有监控多Internet接入点网络的能力;采用对等式的系统架构,使得系统风险大大降低;综合运用多种识别方法,使得入侵事件的判定更加准确。该系统基于linux平台。本文详细阐述了该系统的设计思想和方案。


【关键词】

入侵监测,入侵监测系统,对等式架构


【引言】

随着Internet的飞速发展,Internet的安全问题也越来越倍受人们的关注。由于黑客工具和技术在Internet的广泛传播,使得越来越多的人拥有了攻击、入侵他人网络系统的能力。前不久,世界著名的几家大网站,如雅虎(yahoo)等,就遭到黑客攻击,中断服务数小时,造成巨大的经济损失。这使得人们更加关注反黑客攻击技术的研究。

在我国,网络应用正处于高速发展阶段,政府上网、电子商务,新型应用不断出现。但是,防黑客技术的研究却刚刚起步,无法适应发展要求。由于安全措施不利,黑客入侵事件时有发生。因此,本文的研究成果不仅具有理论价值,更具有现实意义。


【背景】

入侵监测(Intrusion Detection)就是对当前的系统资源和状态进行监控,检测到可能的入侵行为。而入侵检测系统(IDS)就是在系统中某个位置进行监控,执行入侵检测功能的系统。它具有对非正常行为(攻击和入侵)的识别判断能力,并会作出适当的响应。

入侵监测系统不同于传统的过滤器和防火墙系统。过滤器和防火墙只是利用事先制定的规则对出入网络的数据进行选择,阻止异常的数据出入系统。而入侵监测系统则具有更高的智能,它在对出入网络的数据进行实时监控的同时,搜集、整理可疑信息,对当前的系统状态和用户行为做出推断,是否有入侵发生。

根据入侵检测系统的位置和信息源,可以将入侵检测系统基本分为三类:

?基于主机的入侵检测系统(Host-Based Intrusion Detection System)

此类系统位于单个主机,利用操作系统产生的日志记录(audit trails)作为主要的信息源,检测针对主机的入侵行为。早期的系统多为基于主机的。

其主要优点是:信息源(OS日志记录)完备,可以精确监控每个用户的行为。

其主要缺点是:首先信息源与操作系统密切相关。由于各个操作系统平台的日志记录(audit trails)形式不同,所以系统不能通用于各平台。其次,信息源单一,缺乏相关性。入侵通常发生在整个网络范围,涉及一系列主机。所以仅靠单一主机的信息源无法作出准确判断。

?基于网络的入侵检测系统(Network-Based Intrusion Detection System)

此类系统出现于近些年。它一般位于Internet到内部网络的接入点,监控进入整个网络的通信流。它依据一定的规则对数据流的内容进行分析,从而对攻击入侵行为做出判断。

其主要优点是:首先,平台无关性。它以网络数据流作为信息源,而网络传输的都是形式统一的TCP/IP报文,与主机平台无关。其次,全局性。由于它通常位于网络的接入点,所有的通信都会通过这里。所以,它的信息源涵盖了整个内部网络,有利于根据信息的相关性作出全局推断。

其主要缺点是:对经过加密的数据流进行分析存在困难。难以监控具体用户的行为。

?分布式的入侵检测系统(Distributed Intrusion Detection System)

分布式入侵监测系统是近几年才出现的。它在网络的不同位置安放多个探测器,按照制定的规则搜集信息,然后统一提交给主控机,由主控机做出判断。

它将信息搜集功能和入侵判定功能分离,提高了系统的检测效率,并具有了对多个接入点检测的能力。但由于它依赖主控机协同工作,一旦主控机受到攻击,整个系统也就瘫痪了。系统的安全系数不高。

通过对以往研究成果的分析,发现以往系统存在一些问题。

首先,多数系统只能对具有单一Internet接入点的网络进行监控。因为只有这样,系统才能通过监控该接入点,捕获网络中所有的通信数据报文,进行入侵检测分析。

但现实的网络通常不是这种情形。为了保证网络的健壮性,网络往往提供冗余的Internet接入点。当一个接入点出现问题时,保证网络不会瘫痪,服务不会中断。而在TCP/IP协议中,对每个IP数据报的路由选择是不确定的。也就是说,每个IP数据报所走的路由都可能由于当时网络状况而不同。如果,公司的内部网络有两个或更多Internet接入点,那么,以往的入侵检测系统就不能保证在一个接入点上捕获所有数据报文。也就是说,当它对某个连接(会话)进行监视时,该连接的某些数据报文可能从其他接入点进入网络。本接入点的入侵检测系统便无法获得该连接的完整状态,从而无法准确作出攻击入侵的判断。

简单的在所有接入点上运行入侵检测系统,同时执行入侵检测是行不通的。因为同一连接的数据报文通过两个或多个接入点进入网络。对于某个接入点上的入侵检测系统,仅仅依靠连接的部分离散信息,缺少上下文(context)环境,是无法作出准确判断的。

最近出现了分布式网络入侵检测系统(Distributed Intrusion Detection System)。它能够在内部网络的几个位置同时检测,较好的解决了这个问题。但是,由于采用了主从式的架构,所有的探测器都由主控机控制,并且由主控机进行入侵的判断决策,使得该系统存在较大的风险。一旦主控机被攻击,整个系统也就崩溃了,起不到任何防护作用。

其次,多数系统的入侵检测手段单一。检测手段主要分两类:滥用检测(Misuse detection)和异常检测(Anomaly)。前者是指将系统中检测到的数据和累积的入侵模式相匹配,从而确定是否有入侵发生。后者是指将系统中检测到的数据和累积的正常行为模式相匹配,如果偏离正常,则认为有入侵发生。前者主要基于统计,但是不够准确,容易漏判。后者主要基于规则,但是容易发生误判。两种手段各有优缺点。多数系统择二者其一。

本文在吸收前人研究成果的基础上,提出建立对等式架构入侵检测系统的思想。这是本文讨论研究的重点。采用对等式体系结构,分担集中控制的风险,较好的解决了这个问题。同时也能监控整个网络的通信情况,保留分布式系统的优点。系统中的每个IDS模块都是相对独立的,没有主从之分。他们互相协作共同完成对整个网络的入侵检测。本文还将特征、规则和统计等检测手段结合并改进,提高了检测效率和准确性,增强了系统的识别能力。


【相关研究】

入侵检测技术是网络安全中一个比较新的研究领域。迄今为止,研究人员已经作了许多工作,并有研究成果发布。

NSM(Network Security Monitor)是一个网络安全监控器。它通过分析局域网中的通信数据流来检测入侵行为。该系统仅限于在单一的广播链路上运行,以获取主机间的所有通信数据。

DIDS(Distributed Intrusion Detection System)是NSM的改进系统。它综合搜集的网络数据和网络中其他主机的日志事件,来检测入侵行为。但其分析仍仅限于单一局域网络,只是各个主机日志事件进行集中处理。

NetSTAT是一个实时的,基于网络的入侵检测系统。它使用状态迁移图来来刻画整个网络模型和攻击入侵行为。是一种比较新颖的系统。

国内目前的研究也刚刚起步。1999年9月,NJCERT开发了一个基于网络的实时入侵检测系统―Monster2.0。该系统基于Linux平台,能够有效的检测各种攻击,并支持动态功能增加。


【系统体系结构】

整个系统由若干入侵检测(IDS)子系统组成。各IDS子系统相对独立,负责监控部分通信;又相互协作,完成整个网络的检测。以下是其系统架构图。我们假定Internet到内部网络有两个入口(简单情况)。由于各IDS子系统相对独立,系统容易拓展,所以更多入口的情况只需添加IDS子系统,稍加配置即可。



整个系统紧跟在防火墙的后面放置。这样设计是合理的。首先,防火墙能对系统起到保护作用,免得系统暴露在外面,受到入侵者的直接攻击。其次,可以完整监控接入点的全部通信,确保判断的准确性。

各个IDS子系统分别位于不同接入点,负责监控所在接入点的通信数据流。由于TCP/IP路由协议的特点,每个数据报文的路由都可能不一样。所以一个会话的数据报文会分散由两个接入点进入网络。而对于IDS子系统来说,必须能够收集会话的完整数据才可做出准确判断。因此IDS子系统间必须进行信息交流,使得每个IDS都能够得到监控会话的所有报文。另外,IDS子系统之间的信息交换是可行的。因为他们位于网络通信的末端,同处于一个网络内。其通信速度是以局域网的速度进行的,完全可以保证系统的效率。信息交换机制是整个对等式架构的基础。基于它,IDS子系统才能互相协调、完成各自的检测任务。


【IDS子系统】

IDS子系统是系统中的独立实体,它是整个系统的核心,要实现以下功能:

1. 监控经由本接入点出入网络的通信数据流。掌握各会话及整个网络的状况,并及时发现记录可疑事件。

2. 整理可疑事件,并进行分析判断,是否有入侵行为发生。

3. 对入侵做出相应的应对措施,阻止入侵行为的进一步实施。

4. 和其他IDS子系统交换信息,使得各子系统得到监控完整的信息,提高判断的正确性。

上图即是IDS子系统的逻辑架构。下面给出各模块功能设计方案。

l 报文过滤器

报文过滤器直接和网络接口层通信。他依据监控连接库,收发相关报文帧并进行重组,同时监控防范利用TCP/IP底层协议进行攻击的入侵行为。他还对观察到的报文特征进行统计,供上层模块分析使用。他负责与交换引擎通信,维护系统信息的完整性。他直接向上层提交定义好的事件描述,屏蔽与其他IDS子系统的信息交换过程,使得上层部件的分析、决策完全透明。另外,他还根据事先定义的安全策略,对特定类型的报文进行筛选。

l 交换引擎

交换引擎负责IDS子系统间的信息交换通信。交换信息包括两种:数据信息交换报文和控制信息交换报文。数据信息交换报文是指隶属其他IDS子系统监控会话内容的数据报文。而控制信息交换报文是指为维护双方的协同性而收发的,起控制作用的报文。交换引擎接受报文过滤器提交的转发报文,按照事先定义的信息交换协议,将其打包发送给其他IDS子系统的交换引擎。同时,接收来自其他IDS子系统交换引擎的转发报文,对系统状态做出相应的调整。另外,交换引擎还负责收发控制信息报文。

l 报文分析器

报文分析器对筛选重组后报文所包含信息内容分析整理。并根据分析结果产生相关可疑事件。可疑事件采用统一的表示形式,提交上层部件分析处理。这样,就把具体的数据报文屏蔽在下层,便于提高上层部件的判断效率。

l 判定器

判定器综合网络中各会话的可疑事件,根据状态迁移图对整个网络状态进行判定。决断出当前网络中是否存在入侵行为,并产生入侵报警事件,提交响应器处理。

l 响应器

针对相应的入侵报警事件,采取相应的应对措施(按照不同的警告级别,如警告、封杀)。在通知系统管理员的同时,主动限制入侵者的后续通信进入网络(如通知防火墙,阻止来自x.x.x.x的通信)

l 策略解释器

策略解释器用来增加系统的灵活性。系统可以由用户设定不同的安全策略,用来抵御不同的攻击入侵。而解释器负责将用户定义的安全策略转换为系统部件可以理解的形式,从而控制系统部件的行为。对此,我们不做深入研究。


本文重点讨论IDS子系统的信息交换机制和入侵检测机制。由于涉及IDS子系统间的交互、协调工作,所以信息交换机制设计比较复杂,而入侵检测机制的设计则相对简单一些。


【交换机制的设计】

l 交换机制设计思想

本文的设计思想就是由每个IDS子系统维护一个“监控连接库”(实际位于报文过滤器中)。监控连接库中包括本IDS监控连接和他IDS监控连接。对于接收到的报文,如果属于他IDS监控连接,就通过交换引擎发送给他IDS子系统。问题在于如何保证交换过程中各监控连接库的一致性和完整性。这需要一套复杂的机制,也是我们研究的重点。

1. 监控连接的添加机制

采取“先来先服务”的原则。对于每个收到的未纳入监控范围的新报文,将其对应连接(会话)纳入监控范围,即在本IDS监控连接中添加一项记录。由于不能确定该连接(会话)是否正在被其他IDS子系统监控(这种情况存在的可能性很大),所以暂时把该项标记为“临时” 项。而该连接的全部后续报文均会被监控记录。

2. 监控连接的删除机制

监控连接的删除分两种情况:一种是在连接正常终止或者连接许久没有活动迹象时。另一种是经过竞争(选举)决定由其他IDS子系统监控某个连接时。对于第一种情况,为每个监控连接记录项设定计时器。如果超过设定的时间,没有收到该连接(会话)的报文,便自动删除。我们这里借鉴TCP连接超时的算法来处理。对于第二种情况,是指在本IDS对某个新纳入监控范围的连接监控一段时间后,发现该连接正在由其他IDS监控,而经过权衡后,系统决定交由他IDS系统监控,便删除本IDS中对应该连接的临时监控项,同时添加他IDS监控连接项。

3. 监控连接的通告机制

对连接的监控采用竞争选举机制。我们用“通告”来维护监控连接的一致性和完备性。交换引擎依据本IDS的临时监控连接情况定时发出对临时监控连接的监控请求通告。监控请求通告依次向其他IDS子系统发送,其他IDS子系统的地址由系统的配置文件提供。

对于接收方IDS来说,存在三种情况。一种是对方IDS还没有对该连接临时监控(即还没有收到过该连接的报文)。则对方发回同意(OK)通告。然后本IDS依次同样请求其他IDS。若没有IDS发回拒绝(NO)通告,便认为申请成功,可以将该连接纳入本IDS监控连接库。另一种情况是对方IDS正在临时监控该连接。则必须权衡双方的指标,比较监控优先级。谁级别高,谁监控。若级别一样,则稍候再重新提出请求。失去临时监控权的IDS将该连接的监控记录纳入他IDS监控连接库,同时将其相关的报文以及事件记录统统通告给得到监控权的IDS。再一种情况是,对方IDS已经将该连接纳入他IDS监控连接库,则对方IDS更新他IDS监控连接的IDS地址。本IDS再对其他IDS发送请求,过程同上。

l 交换引擎的逻辑结构

监控连接库


本IDS 它IDS

监控 监控

以下是其逻辑结构图。


如图,交换引擎由通信部件、报文交换部件、通告收发部件和交换引擎接口等部件组成。

1. 通信部件

他负责进行具体的通信操作,即发送交换报文(包括转发报文、通告报文);对接收的交换报文进行分检,存入相关队列等候处理。

2. 报文转发部件

包括转发发送和转发接收部件。发送部件负责发送隶属其他IDS监控连接的报文和相关事件,并调整相关队列。接收部件负责接收其他IDS转发过来的,隶属本IDS监控连接的报文和相关事件,并修正相关部件的内容。

3. 通告收发部件

包括通告发送和接收部件。通告发送部件负责定时产生监控请求通告,定时发送报文调整通告,将被调整出本IDS的报文和相关事件发送给其它IDS的通告接收部件,以维护监控连接库的一致性。通告接收部件负责接收并应答其他IDS发送来的监控请求通告,完成监控请求过程;还负责接收报文调整通告,并相应的调整相关部件。

4. 交换引擎接口

交换引擎接口为报文过滤器提供一个简单的界面,屏蔽交换引擎的工作过程。报文过滤器只需将要转发的报文提交给该接口或者从该接口提取接收到的转发报文即可。

l 算法流程设计

1. 转发发送算法

。初始化

。检查是否有转发帧报文到达

。若无则转步骤2

。若有则打包成转发发送帧,提交通信部件

。转步骤2

2. 转发接收算法

。初始化

。检查是否有通信部件提交的转发报文

。若无,则转步骤2

。若有,则提取转发帧报文

。提交给通信引擎接口,由其提交给报文过滤器

。转至步骤2

3. 通告发送算法

。初始化

。初始化并启动定时器

。定时器到时,则检查监控连接库中是否有临时监控连接

。若没有,则转至步骤3

。若有,则依次对其它IDS发送对X(s)连接的监控请求(包含权衡指标)

。若对方IDS同意(收到OK通告),则向下一个IDS发送该连接的监控请求

。若所有IDS均同意,则将该连接X(s)纳入监控连接范围

。若对方IDS不同意(收到NO通告),则将该连接X(s)纳入它IDS监控连接库并记录它IDS地址

。若对方IDS无法确定(收到HOLD通告),若尚未通告完所有IDS,则向下一个IDS发送该连接的监控请求

。若已经通告完所有的IDS,则转至步骤3

。转至步骤3

4. 通告接收算法

。初始化

。等待其他IDS发送的连接监控请求通告

。若无,则转至步骤2

。若有,则依据本IDS监控连接库情况进行相应处理

。若本IDS正在对该连接进行临时监控,则依据权衡指标进行权衡

。若本IDS有优势,则由本IDS正式监控该连接,并向他IDS发送NO通告

。若本IDS没有优势,则由他IDS监控该连接,并向他IDS发送OK通告;

本IDS将该连接列入他IDS监控连接之列

。若无法确定谁有优势,则向他IDS发送HOLD通告,维持现状,

稍候重发监控请求

。若本IDS已经对该连接正式监控,则向他IDS发送NO通告

。若本IDS尚未临时监控该连接,则

。若他IDS监控连接中有该连接,则更新该监控连接的IDS地址

。若他IDS监控连接中没有该连接,则向他IDS发送OK通告,

同时在他IDS监控连接库中添加相应的项目(包括IDS地址)

。转至步骤2

l 交换协议格式设计


交换协议用来统一定义IDS子系统之间交互的信息格式。从功能上看,交换报文可以分为转发交换报文和通告交换报文。从内容上看,交换报文又可以分为数据交换报文和控制交换报文。为了提高效率,减少建立连接的时间,交换协议利用UDP数据报进行通信。如下图所示。

下面给出交换协议报文的设计方案,这其中最重要的便是交换协议首部的设计。

为了便于一致处理,交换报文首部统一划分为四个字段,总共占6个字节。如下图所示:

1 2 3 4 5 6

根据交换报文类型的不同,中间字段的含义不同。最后一个字节保留待用。

下面给出各种类型报文的格式。

。转发报文

转发报文是转发部件处理的报文。被本IDS转发的报文作为转发报文的数据内容,同时在转发报文中记录数据区中报文的数目和长度,便于准确处理。至于首部中的其他字段,予以保留。它的类型码是0x01H。

1 2 3 4 5 6

。监控请求通告报文

监控请求通告报文的报文类型字段是0x02H,随后的字段记录数据区中监控请求的数目,占两个字节(最多可以有65535个请求)。下一个字段记录每个请求的长度,也占两个字节。每个请求都由监控连接和权衡指标组成。其中权衡指标用做IDS决定由谁监控连接的依据。

1 2 3 4 5 6

。应答报文

应答报文的类型码为0x04H。随后的字段记录报文数据区中的应答数目(最多65535个应答)。应答长度记录单个应答的长度。应答报文用来和其它提出连接监控请求的IDS交互,从而选举出最终的监控者。应答分三种:同意(OK)应答,拒绝(NO)应答,保持(HOLD)应答。每个应答都包含对应的连接和应答的类型。

1 2 3 4 5 6

。数据(DATA)通告报文

1 2 3 4 5 6

数据通告报文用来在IDS子系统的监控连接库调整后,将已经搜集整理的相关信息发送给其它IDS子系统,以维护整个系统的一致性和完备性,便于各子系统准确分析判断。数据报文的类型编码是0x08H。下面的字段先后记录数据报文的数目和长度。首部的最后一字节记录数据类型。如图所示,0x01H表示后面的数据区中搭载有监控报文数据,而0x02H则表示数据区搭载有相关的监控事件数据。


【入侵检测机制设计】


入侵检测机制的设计决定系统的效率和精度。以往的系统多采用单一检测手段。而在研究各种检测手段后,本文提出将各种手段结合使用的思想。综合使用并不是各种检测手段的简单叠加,而要在考虑系统整体性能和效率的基础上,做出取舍和改进的综合。

l 检测逻辑结构

从逻辑上看,入侵检测机制由下至上分三层。如右图所示。这和报文在系统中的处理过程一致。只有最下层直接和数据报文打交道,他在进行监测的同时,搜集整理完整的信息。上层依据下层搜集的信息,在更高的级别上进行检测。

从检测手段上看,报文级别的检测主要采用特征匹配的手段;会话和网络级别的检测主要采用状态迁移手段。因为上层的数据源来自下层对报文数据分析统计的抽象,所以采用状态迁移可以获得更高的效率。统计手段作为辅助手段贯穿入侵检测的始终,这样能够提高判断的准确性。

l 检测算法设计

与逻辑结构相一致,检测算法分两种,统计检测作为辅助手段。

。基于特征匹配的检测

这种检测手段主要运用于报文级别(底层)。由于底层直接处理数据报文,需要在短时间内处理大量的数据报文,因此不适用逻辑复杂的检测算法。特征匹配则是最直接有效的手段。底层把匹配的报文特征抽象成事件,并进行统计。相关事件和统计结果作为上层检测算法的输入数据。特征匹配算法比较简单,下面是特征匹配算法的描述。

。初始化

。提取检测报文

。根据攻击入侵库中的特征,对报文的首部和数据区进行匹配

。若发现匹配特征,则产生相关事件(预先定义),同时修改相关统计数据

。若未发现,则丢弃该报文

。转至步骤2,继续匹配过程

。基于状态迁移的检测


这种检测手段主要运用于会话(连接)和网络级别(高层)。下层传输的数据报文对他来说是透明的。他所能理解的数据形式只是系统定义好的相关事件。相对而言,他的检测比较复杂,更加智能化。我们利用有限状态机(FSM)来描述整个网络的状态迁移过程。对于整个网络,不同事件的发生会使网络状态发生不同的迁移。例如,当网络中相继发生事件序列abc就认为网络中存在入侵事件。整个网络的状态迁移图如右图所示。

我们把状态机中的状态同样看作判断条件,那么整个网络的入侵判定就会形成一个大的入侵判定树。各个网络状态作为判定树的分支和叶节点,而各种事件则作为状态迁移的输入事件。如果把所有状态、事件都加入这个判定树,则会严重影响判定的效率。为此,我们把判定树相应的划分层次,分别交由不同层执行判定。这样整个系统的判定树被分成若干子判定树,其终结状态作为大判定树的分支/叶节点。系统的下层直接对子判定树进行判定,而由系统的上层对大判定树执行判定。这样做明显会带来系统效率的提升。


下面给出整个网络判定树的简单示意图。

这只是一个示意性的图例,实际的判定树要复杂庞大的多。对于某个状态的迁移由一系列事件条件决定。其中各个事件的逻辑关系也不同。有的状态需要几个事件中的任何一个发生(逻辑或)即可满足条件进行迁移,而有的状态则要几个事件都发生(逻辑与)才迁移。

会话事件的判定树作为整个网络判定树的子判定树,由系统的下层执行。其判定逻辑同网络判定树的逻辑是一致的。

统计手段的运用是为了提高系统的检测可靠性和准确度。他是入侵检测评估时的一个重要参量。相关的统计结果主要应用于两个方面。首先,统计结果作为判定树判定的一个重要条件参与判定。例如,单位时间内某个会话(报文)事件发生的次数就是一个非常重要的参量条件。其次,统计结果作为判定树进行判定的有效权值。对系统进行监测评估时,对每一个状态均事先设定一个评估值。当相关事件发生,状态发生迁移时,综合原状态时的评估值和相关事件带来的评估值以及统计结果带来的权值,计算新的评估值。如果这个评估值超过了设定的阈值,则成功的将状态迁移到新状态。一直到终结状态,便得出结论,是否发生入侵。

下面给出检测算法的简要描述。

。初始化

。检查事件队列是否有事件等待处理(即有可疑事件发生)

。若无,则转至步骤2

。若有,则进行状态迁移判定

。提取当前网络状态及评估参量

。按照判定树的判定规则,检测该事件是否满足状态迁移的条件

。若满足,则综合计算当前评估参量、该事件的评估参量和相关统计参量,得到新的评估参量。

。检查新的评估参量是否超过新状态设定的阈值

。若超过,则改变网络状态,实现状态迁移。更新相关参量(状态评估参量、相关事件的统计参量等等)。

。若没有超过,则不进行状态迁移,转至步骤2

。不满足,则不进行状态迁移,转至步骤2

。转至步骤2


【字符串匹配算法】

由于要在短时间内对大量的数据通信流进行内容检索,而且大部分协议基于文本,如TELNET、HTTP、POP3、SMTP等等。同时,攻击入侵特征也多数以字符串的形式存在。所以,系统必须具有能够从文本数据流中实时提取关键字的算法。借鉴前人成果,本系统采用快速多字符串匹配算法。它采用多项式哈希算法,能同时对大量关键字进行监测。描述如下:








根据每个关键字的前M个字符计算出相应的哈希值Kn,然后在哈希表的对应项进行标记。每当网络数据流中新收到一个字符,当前的Sn就被计算一次。然后根据计算得到的Sn查找哈希表。若表中的对应项有标记,则有可能匹配到了一个关键字。

值得注意的是存在的递推关系:

Sn = KSn-1

最新喜欢:

txysptxysp
按第一贴的“给分”键,给分。
yiduz
驱动小牛
驱动小牛
  • 注册日期2001-04-28
  • 最后登录2003-10-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-25 12:54
对我很有用
ydzhang
tome
驱动中牛
驱动中牛
  • 注册日期2002-02-21
  • 最后登录2007-11-28
  • 粉丝0
  • 关注0
  • 积分99分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-25 13:02
斑竹,终于回来了!!


 :D :D :D :D :D :D :D :D :D
不错 ,不错,真不错。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地板#
发布于:2002-11-25 17:35
老mo一回来,就发大还丹阿。
zhhh_4003
驱动牛犊
驱动牛犊
  • 注册日期2002-11-26
  • 最后登录2003-03-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-29 11:18
很好!收获非浅!
heqingbj
驱动小牛
驱动小牛
  • 注册日期2002-10-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-12-05 14:27
有点意思 粗看了一些很象是在给IDS搞负载均衡 可以解决效率的问题 不过我觉得IDS现在真要突破恐怕还要考虑它的算法上 要更加智能 这样应该会有起色 还有就是能够与路由器、防火墙的护动 这些功能如果有突破 对整个IDS都是福音
martx
驱动牛犊
驱动牛犊
  • 注册日期2005-07-29
  • 最后登录2005-07-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-07-29 20:01
更加复杂化了,性能上过得去的吗?
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2005-08-01 09:27
这么老的帖子都上来了啊:))))))))
琢磨悟真知
hsdjl
驱动小牛
驱动小牛
  • 注册日期2002-09-29
  • 最后登录2009-01-19
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-08-03 07:26
毕业设计想做一个IDS,看了有点儿启发,不知道有没有源代码
jqklw
驱动牛犊
驱动牛犊
  • 注册日期2005-02-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望6点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-03-28 17:12
好文,收藏啦,虽然老,还是很有用滴
初学者,正在努力 ! 多谢关照 !
eyesonme_yang
驱动牛犊
驱动牛犊
  • 注册日期2008-04-02
  • 最后登录2008-05-30
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2008-04-02 13:25
匹配算法都研究透了,内嵌IDS更有发展
游客

返回顶部