1、基于网格入侵检测系统与实现 摘要网格是部署在广域网上的抽象应用,其基本单位是以实现一个任务为目标的动态组建的虚拟组织。基于网格的入侵检测系统应该是部署在虚拟组织之上的虚拟组织。本文首先分析了网格对于入侵检测系统的要求以及当前网格入侵检测系统的不足之处,然后提出了基于虚拟组织的网格入侵检测系统模型。 关键字网格;虚拟组织;入侵检测 1入侵检测系统分析 表1分析了入侵检测系统结构变化。 表1IDS出现的问题及结构的变化IDS发展解决的问题结构特征基于主机单一主机的安全各部分运行在单节点上基于网络局域网的安全采集部分呈现分布式分布式单一分析节点的弱势分析部分呈现分布
2、式 网格的运行是由用户发起任务请求,然后寻找资源搭配完成任务,这样形成的团体称为虚拟组织,网格入侵检测系统是为其他VO提供服务的VO[1],目前其面临的主要问题如下: 分布性:包括资源分布和任务分解。 动态部署:系统是为VO提供服务的,其部署应是动态的。 动态形成:系统本身也是一VO,是动态形成的。 最优方案选择:本系统需多种网格资源协同进行,要选择一个最优方案。 协同计算:保证按照入侵检测流程顺利运行。 动态改变:防止资源失效。 目前关于网格入侵检测系统的研究[2]只能说解决[了分布性、动态形成、协同计算。而对于动态部署[1]、动态改变[3]仍
3、处于研究中。 2VGIDS系统模型 VGIDS基于开放网格服务思想提出了一个公共服务——GIDSService来解决目前网格入侵检测系统面临的问题。整个VGIDS结构如图1所示。 VO-Based:网格是一个虚拟组织的聚集,本系统提出一虚拟组织目录。用户向GIDSService提交请求并将被检测VO代号作为参数。GIDSSevvice查找VOL获取VO信息。当VOL数量减为一就成为单一网格应用,可由网格管理将VO信息传给GIDSServic。 图1VGIDS系统结构 GIDSService:负责资源发现,调度。具体包括: RI:服务接口,负责服务请求及VO信
4、息获取。同VOL解决动态部署。 DA:委托代理。同用户交互获得用户委托授权。 DD:分布式数据。存储VGIDS需要的资源信息。解决分布问题。 RQ:资源查询。当获得用户授权后便由RQ根据DD描述向资源目录查找资源。解决分布问题。 PC:最优方案选择。当从RL获得可用资源后PC根据AM要求选择一个最优方案。本文称为多维最优路径选择问题。 AM:任务管理。首先根据DD存储所需资源的调度信息,当VGIDS形成后,根据PC的方案选择及DD存储的资源信息进行任务的调度和协同各分布资源的交互,解决[本文由网站公文大全收集整理]协同计算。 IR:入侵响应。 SN:安
5、全协商。同资源和用户的安全协商。 DI:动态检查。负责检查资源失效向RQ发起重新查找资源请求。解决动态改变问题。 LB:负载平衡。主要根据DD信息解决网格资源调度的负载平衡问题。 3VGIDS服务描述 本系统是一动态虚拟组织,在系统运行之前必须以静态网格服务的形式部署于网格之上,当用户申请时再动态形成。 定义1:VGIDS的静态定义如下:VGIDS= Base为VGIDS基本描述,Base=。ID为虚拟组织编号;Power为获得的授权;IO为被检测对象;Inf为监控VGIDS获得的信息文件;log为系统日志;goal为VGIDS目标,包括调度算法所估计的系统
6、效率及用户要求;P为系统交互策略,需同网格资源进行交互,授予资源角色和相关权利并同时分配相关任务。 Resource为VGIDS的所有资源,Resource=。 IP为资源地址;Property为资源属性,方便角色匹配;Serve为资源可提供的服务指标;Power为使用资源所要求的授权;P为资源交互策略。 Role为存在的角色类型,Role=。ID为角色的分类号,按照工作流分为5类角色分别对应VGIDS的5个环节;Tas为角色任务;Res为角色需要的资源类型;Power为角色所获得的权利。 Task为工作流任务集合。Task=。ID为任务标号;Des为任务描述;Res为
7、需要的资源种类;Role为任务匹配的角色;P为Task执行策略。 Flow为工作流描述文件,Flow=。Role为角色集合,Seq为角色执行序列,P为对于各个角色的控制策略。 Relation为已确定资源Resource和Role之间的关系。Relation=。Res为资源集合,Role为角色集合,Rl为对应关系。 4多维最优路径选择 问题描述 将图1抽象为图2模型定义2:Graph=。 U为所有被检测对象的集合,Un=,Loadn为Un单位时间所要求处理的数据,Pn为Un在被检测VO中所占权重,如果P为空,则按照Load大小作为权重。 D为存储服务集
8、合,Dn=,Capn为Dn提供的存储容量。Qosdn为Dn提供的服务质量,近似为数据吞吐率。 A为分析服务集合,An=,Classn为An处理的数据种类,如系统日志或网络流量。Qosan为An提供的服务质量,近似为处理速率。 Edge为边的集合,有网络传输速度加权v。 图2VGIDS调度模型 定义3:Qos定义为一个多维向量,可用一个性能度量指标的集合表示: {M1、M2,…,Mn} Mn为一个与网格服务质量有关的量,如CPU的主频、网络速度、内存。服务的执行过程体现出来的性能参数是一条n维空间的轨迹M,这个n维空间的每一维代表一个性能指标 M=R1*
9、R2*…*Rn 其中,Rn是性能指标Mn的取值范围。在本系统中存在两类Qos,分别为D和A。本系统强调实时性,所以CPU、RAM和网络速度占很大权重,Qos计算公式如下: Wcpu表示CPU的权重;CPUusage表示当前CPU使用率;CPUspeed表示CPU的实际速度;CPUmin表示要求的CPU速率的最小值。Wram表示RAM的权重;RAMusage表示当前RAM使用率;RAMsize表示RAM的实际大小;RAMmin表示要求的RAM的最小值。Wnet表示网络传输的权重;NETusage表示当前网络负载;NETspeed表示网络的实际速度;NETmin表示要求的网络传输速率的
10、最小值。 资源调度就是利用对各个资源的量化,为每一检测对象选择一条数据传输路径。本系统目标是使整个VO获得快速的检测,而不是对个别对象的检测速率很高。 定义4:对于任意一个被检测VO的检测对象,如果能够为其构造一条检测路径,称系统对于此对象是完备的。 定义5:对于VO,如果能够为其所有的检测对象构造检测路径,则称系统对于被检测VO是完备的。 本调度算法的目的便是在满足被检测VO和入侵检测工作流要求下,按照所选网格资源提供的能力为整个VO构造VGIDS,使所有被检测对象检测效率之和最高。这是一非典型的线性规划问题,如下定义: X1,…Xn是n个独立变量,表示VGID
11、S所选路径;公式表示最大耗费时间;公式—表示所有对于Xn的约束条件。由于Xn变量难以确定并且约束条件种类较多所以难以将上述问题标准化为公式—。 算法描述 本文利用贪心选择和Dijkstra算法进行调度。 按照用户给出的U的权值P从大到小进行排序,if,则按Load从大到小进行排序得到排序后的对象数组和负载数组为 U[i];Load[i] for,循环对U和Load执行以下操作: 对于所有边,定义其权值为网络传输时间t=Load[i]/v,对于所有服务D和A定义其处理数据时间为t1=Load[i]/Qos,将t1加到每一个服务的入边上得到最终各边权值,如果两点
12、之间没有边相连则t[j]为∞。 定义Capmin[i]为U[i]对于数据存储能力的最低要求,Qosdmin为U[i]对于D中服务质量的最低要求,Qosamin为U[i]对于A中服务质量的最低要求。对于所有D中Cap。用带权连接矩阵arcs[i][j]表示的权值。定义向量D表示当前所找到的从起点V0到终点Vi的最短路径,初始化为若V0到Vi有边,则D[i]为边的权值,否则置D[i]为∞。定义向量P来保存最短路径,若P[v][w]为TRUE,则W是从V0到V当前求得最短路径上的顶点。 for { final[v]=false; D[v]=arcs[v0][v];
13、 forP[v][w]=false; //设空路径 if{P[v][v0]=true;P[v][v]=true;}} D[v0]=0;final[v0]=true;//初始化,V0顶点属于已求得最短路径的终点集合 for{ min=INFINITY; for if if{v=w;min=D[w];} final[v]=true; for//更新当前最短路径及距离; if){ D[w]=min+arcs[v][w]; P[w]=P[v];P[w][w]=true; }}} 扫描A中各点,选取其中D[i]最小
14、的一点X,然后从P中选取从V0到X的路径便为所选一条VGIDS路径。 将所选路径上的边的速率改为V=V-Load[i],D的Cap改为Cap=Cap-Capmin,D的Qosd改为Qosd=Qosd-Qosdmin,A的Qosa改为Qosa=Qosa-Qosamin。 ++i,回到步骤重新开始循环。 5系统开发 本项目主要利用Globus工具包外加CoGKits开发工具。Globus作为一个广泛应用的网格中间件其主要是针对五层沙漏结构,并利用GridService技术逐层对五层沙漏提出的功能单源进行实现[5],表2简单叙述VGIDS实现的各层功能及Globus中对应服务
15、调用。 实验时VGIDS部署在Linux系统上,采用基于Linux核心的数据采集技术及Oracle10g作为数据库系统解决分布式存储问题,数据分析技术仍采用现有的基于规则的入侵检测技术。系统试验平台如图3所示。 表2系统功能划分及调用接口五层结构VGIDSGlobus应用层GridService无汇聚层资源发现、证书管理、目录复制、复制管理、协同分配元目录服务MDS,目录复制和复制管理服务,在线信任仓储服务,DUROC协同分配服务资源层访问计算、访问数据、访问系统结构与性能信息提供GRIP、GRRP、基于http的GRAM用于分配资源和监视资源,提供GridFtp数据访问管理协议及
16、LDAP目录访问协议。Globus定义了这些协议的C和Java实现连接层通信、认证、授权提供GSI协议用于认证、授权、及通信保密构造层数据采集代理、数据存储、数据分析提供缺省和GARA资源预约图3系统试验平台 本平台共8台机器,一台网格目录服务和CA认证中心,一台部署VGIDS服务。两台机器作为被检测对象,相互之间可实现简单网格协作,本试验两台机器之间通过Gri dFtp服务传输数据。其余四台机器分别实现两个存储服务和两个分析服务。 6总结和展望 目前网格入侵检测系统主要是针对某一特定网格应用静态执行。而本文所提出的VGIDS则是针对网格运行模式——虚拟组织所提出的通用
17、网格入侵检测服务。本系统事先进行静态定义,然后当有服务请求时动态解析定义文件,动态形成可执行的网格入侵检测系统。本系统解决目前网格入侵检测系统面临的动态部署、动态形成、最优方案选择、动态改变等问题。 对于网格入侵检测系统同样还面临着如何解决数据异构,如何发现分布式协同攻击,如何保障自身的安全等问题,本模型有待进一步完善。 参考文献 [1],IEEE, [2]AlexandreSchulterandJúina,ProceedingsoftheInternationalConferenceonNetworking,InternationalConferenceonSystemsandInter,2006 [3]TolbaMF,Abdel-WahabMS,TahaIA,etal,“GIDA:TowardEnablingGridIntrusionDetectionSystems”,CCGrid,11thMay,2005 [4],Tung-HaiUniversity,Proceedingsofthe19thIntern, [5]都志辉,陈渝,刘鹏.《网格计算》.2002年8月17日,清华大学基于网格入侵检测系统与实现






